young
Новичок
Убирает вложенность тегов
PHP:
function removeRecursion($text, $find, $find_en) {
$find_size = strlen($find);
$find_en_size = strlen($find_en);
$offset = 0;
$points = array();
$o1 = 1;
$o2 = 1;
$text = " " . $text;
do {
$o1 = strpos(strtoupper($text), strtoupper($find), $offset);
$o2 = strpos(strtoupper($text), strtoupper($find_en), $offset);
if ($o2) {
if (($o1 > $o2) || (!$o1)) {
if (count($points) > 1) {
$text = $this->deleteTag($text, $o2, $find_en_size);
$text = $this->deleteTag($text, array_pop($points), $find_size);
$offset = $o2 - $find_size;
} else {
array_pop($points);
$offset = $o2 + $find_en_size;
}
} else {
array_push($points, $o1);
$offset = $o1 + $find_size;
}
}
} while ($o2);
return substr($text, 1);
}
}