Поправте мой PCRE

Schumi

Guest
Поправте мой PCRE

Сразу пример:
PHP:
$St = "<title>Car - <B>Wikipedia</B>, the free encyclopedia</title>";
$St = preg_replace("|<(\w+)[^<>]*>(.*)</\\1>|si","$2",$St);

// В результате $St = "Car - <B>Wikipedia</B>, the free encyclopedia";
Регексп просто убирает теги, оставляя только то, что между ними... Просто удалить все теги - не подходит, надо находить парные теги и удалять... В конце должен остаться чистый текст.

После выполнения моего примеру удаляеться только одно вхождение парных тегов, как исправить? А то сейчас приходится его запускать раз Н-цать, чтоб теги все порезать...

Поправте плиз, а то уже голова кругом идет... :/
 

SiMM

Новичок
> Просто удалить все теги - не подходит
> В конце должен остаться чистый текст
Для начала определись в желаниях.
 

Schumi

Guest
Я определился.. Может плохо изложил.. ;-)))
Вот смотрите:
PHP:
$St = preg_replace("|<[\/\!]*?[^<>]*?>|si","",$St);
Этот код просто из текста удалит все теги - открывающие и закрывающие.. :)
А мне нужно удалить лишь парные теги... И оставить лишь то, что между ними.
Мой пример в 1-м посте делает это лишь для одной пары тегов, а не для всех найденных... :(

-~{}~ 27.08.05 18:17:

Извиняюсь, маленькая поправка:
Код что я привел в 1-м посте таки удаляет парніе теги, но он не может удалить вложенніе теги, т.е. как маску выбирает самый объемлющий тег, а вложенные оставляет...
Просто на большом файле не было заметно, что режуться только внешние теги...

Как побороть? Может кто рекурсивные шаблоны знает, может еще как?
 
Сверху