예제 #1
0
 /**
  ** Returns a string of fuzz text.
  */
 private static function loop()
 {
     switch (wikiFuzz::randnum(3)) {
         case 1:
             // an opening tag, with parameters.
             $string = "";
             $i = wikiFuzz::randnum(count(wikiFuzz::$types) - 1);
             $t = wikiFuzz::$types[$i];
             $arr = wikiFuzz::$data[$t];
             $string .= "<" . $t . " ";
             $num_params = min(wikiFuzz::$maxparams, count($arr));
             for ($z = 0; $z < $num_params; $z++) {
                 $badparam = $arr[wikiFuzz::randnum(count($arr) - 1)];
                 $badstring = wikiFuzz::makestring();
                 $string .= $badparam . "=" . wikiFuzz::getRandQuote() . $badstring . wikiFuzz::getRandQuote() . " ";
             }
             $string .= ">\n";
             return $string;
         case 2:
             // a closing tag.
             $i = wikiFuzz::randnum(count(wikiFuzz::$types) - 1);
             return "</" . wikiFuzz::$types[$i] . ">";
         case 3:
             // a random string, between tags.
             return wikiFuzz::makeString();
     }
     return "";
     // catch-all, should never be called.
 }