парсинг вложенных тегов

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);
	}
}
 

etc

Guest
помнится Antonio замечательный парсер для php написал для html с поддержкой граматики
адрес к сожалению забыл, но может кто вспомнит?
 

young

Новичок
PHP:
	function deleteTag($text, $point, $len) {
	        $text = substr($text, 0, $point) . substr($text, $point + $len);
	        return $text;
	}
 
Сверху