コード例 #1
0
 /**
  * -- Add function info here --
  */
 function degenerate($token = false)
 {
     if ($token === false) {
         $token = $this->getToken();
     }
     $degenerations = array();
     $curToken = $token;
     $prefix = true;
     while ($prefix) {
         if (ereg("^(" . TOKEN_TOPIC_MARK . "|" . TOKEN_URL_MARK . "|" . TOKEN_USER_NAME_MARK . "|" . TOKEN_USER_EMAIL_MARK . "|" . TOKEN_USER_URL_MARK . ")(.*)\$", $curToken, $regs)) {
             $curToken = $regs[2];
             $prefix = $regs[1];
         } else {
             $prefix = "";
         }
         $degenerations = array_merge($degenerations, BayesianToken::getBasicsDegeneration($curToken, $prefix));
         if (ereg("([^!]+!)!+\$", $curToken, $regs)) {
             $degenerations = array_merge($degenerations, BayesianToken::getBasicsDegeneration($regs[1], $prefix));
         }
         if (ereg("([^!]+)!+\$", $curToken, $regs)) {
             $degenerations = array_merge($degenerations, BayesianToken::getBasicsDegeneration($regs[1], $prefix));
         }
         if ($prefix == "" && $curToken == $token) {
             foreach ($degenerations as $degeneration) {
                 array_push($degenerations, TOKEN_TOPIC_MARK . $degeneration);
                 array_push($degenerations, TOKEN_URL_MARK . $degeneration);
                 array_push($degenerations, TOKEN_USER_NAME_MARK . $degeneration);
                 array_push($degenerations, TOKEN_USER_EMAIL_MARK . $degeneration);
                 array_push($degenerations, TOKEN_USER_URL_MARK . $degeneration);
             }
         }
     }
     return array_unique($degenerations);
 }