Потестируйте, пожалуйста, функцию

korvin0

моська
Потестируйте, пожалуйста, функцию

Программисты! Прошу вас протестировать приведенную ниже функцию на функциональность, т.е. проверить, нет ли случаев, которые она обрабатывает некорректно.
PHP:
/*
string ktag_replace(string text[, string replace[,int php]])
Удаляет все теги, стили, яваскрипты, комментарии или заменяет их
на строку [i]replace[/i], если она указана 2-ым параметром.
Если необязательный параметр [i]php[/i]==1, то удаляются также
php-вставки <? ... ?>
*/
function ktag_replace($text,$replace=" ",$php=0) {
 $text=str_replace(">",">".$replace,$text);
 if ($php==1) {
  $text=str_replace("<?=","<?",$text);
  $tokens = token_get_all($text);
  $text="";
  $tmp=0;
  foreach ($tokens as $token) {
   if ($token[0]==T_OPEN_TAG) $tmp=1;
   if ($tmp===0) $text.=$token[1];
   if ($token[0]==T_CLOSE_TAG) $tmp=0;
  }
 }
 if (preg_match("/<script(?:[^>]*?(\'|\").*?\\1)*.*?>/i",$text,$matches) && (!strstr($text,"<!--") || strpos($text,$matches[0])<strpos($text,"<!--"))) $tmp=1;
 elseif (strstr($text,"<!--")) $tmp=2;
 else $tmp=0;
 for ($i=0;$i<2;$i++) {
  if (($tmp==1 && $i==0) || ($tmp==2 && $i==1)) $text=preg_replace("/<script(?:[^>]*?(\'|\").*?\\1)*.*?>(?:.*?((\'|\").*?\\3|\/\*.*?\*\/|\/\/.*?\n|<!\-\-.*?\-\->))*.*?(<\/script>|$)/is","",$text);
  if (($tmp==1 && $i==1) || ($tmp==2 && $i==0)) {
   if (strpos($text,"-->",strstr($text,"<!--"))!==false) $text=preg_replace("/<!\-\-.*?\-\->/is","",$text);
   else $text=preg_replace("/<!\-\-.*?>/is","",$text);
  }
 }
 $text=preg_replace("/<style(?:[^>]*?(\'|\").*?\\1)*.*?>.*?<\/style>/is","",$text);
 $text=preg_replace("/<([^>]*?=\s*(\'|\").*?\\2)+.*?>/s","",$text);
 $text=preg_replace("/<([^>=]*?(\'|\").*?\\2)+.*?>/s","",$text);
 $text=strip_tags($text);
 $text=str_replace(">".$replace,">",$text);
 if ($text==="") $text=$replace;
 return $text;
}
 
Сверху