0; $going_mid = ($direction & self::DIR_MID) > 0; $going_down = ($direction & self::DIR_DOWN) > 0; $str = ''; for($i = 0; $i < $length; $i++) { $char = $text[$i]; if(self::isZalgoChar($char)) continue; $str .= $char; $num_up = $num_mid = $num_down = 0; switch($mode) { case self::MODE_MINI: $num_up = mt_rand(0, 8); $num_mid = mt_rand(0, 2); $num_down = mt_rand(0, 8); break; case self::MODE_NORMAL: $num_up = mt_rand(0, 16) / 2 + 1; $num_mid = mt_rand(0, 6) / 2; $num_down = mt_rand(0, 8) / 2 + 1; break; case self::MODE_MAX: $num_up = mt_rand(0, 64) / 4 + 3; $num_mid = mt_rand(0, 16) / 4 + 1; $num_down = mt_rand(0, 64) / 4 + 3; break; } if($going_up) $str .= self::getString(self::CHARS_UP, $num_up); if($going_mid) $str .= self::getString(self::CHARS_MIDDLE, $num_mid); if($going_down) $str .= self::getString(self::CHARS_DOWN, $num_down); } return $str; } }