Требуется помощь PHP Preg_replace - PullRequest
0 голосов
/ 09 мая 2011

Я пытаюсь заменить html в php на preg_replace, и мне кажется, что я не получаю регулярное выражение, потому что я всегда его облажаю.

Не могли бы вы помочь мне с этим?

У меня есть следующее:

<ol><li>text</li><li>text</li></ol>

<ol><li><ul><li>text</li></ul></li></ol>

И я хочу вставить <span></span> сразу после <li> и поместитьтекст в <p>.Я должен отметить, что я не хочу, чтобы <li> внутри <ul> был затронут.

Спасибо!

Ответы [ 3 ]

1 голос
/ 09 мая 2011

Вместо того, чтобы пытаться написать одно регулярное выражение, чтобы справиться с этим (я думаю, что было бы возможно сделать это с помощью сопоставления типов с предварительным просмотром), было бы проще:

  • найти каждый <ol> с preg_match_all()
  • перебирайте каждый <li> в результатах, гарантируя, что он не будет заключен в <ul>
1 голос
/ 09 мая 2011

Использование регулярного выражения для этого - рецепт ошибок.

Разбор HTML, чтобы можно было манипулировать им как объектами. Для этого есть множество библиотек: расширение DOM, SimpleXML, phpquery и т. Д. Затем манипулируйте им по мере необходимости.

1 голос
/ 09 мая 2011

Я рекомендую это http://code.google.com/p/phpquery/

...