Как мне обернуть блоки элементов li в элементы ul? - PullRequest
0 голосов
/ 10 февраля 2011

Хорошо, учитывая следующую примерную строку.

Duis posuere suscipit lacus quis lacinia. In molestie lectus sed.
<li>test line here</li>
<li>Second test</li>
<li>Third test</li>
<li>Another test</li>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere suscipit lacus quis lacinia. In molestie lectus sed.
\* Aliquam posuere sapien id elit sodales at vestibulum lacus porttitor. 
*hej
A * hejdu
<li>hejsan</li>
<li>Another item</li>
Lorem ipsum dolor sit amet, consectetur adipidsa
<li>Lonely list item</li>

Допустим, я хочу обернуть три блока li в элементы ul, поэтому у меня будет четыре первых элемента liобернутые в один ul, два элемента во 2-м блоке обернуты в один ul, а последний - в один ul.Я думаю о регулярном выражении, но я не знаю, как бы я создал такое регулярное выражение.Может быть, есть какой-то другой вариант?

1 Ответ

1 голос
/ 10 февраля 2011

Если это исходное преобразование, то регулярное выражение может быть опцией. Это зависит от согласованности формата. Но тогда вы можете использовать что-то вроде:

= preg_replace("#(^<li>.*?</li>\s*)+#m", "<ul>$0</ul>", $content);

Трюк ищет что-то, что может произойти несколько раз с (...)+, в то время как внутренняя часть ограничена точными совпадениями <li>..</li>, которые даже должны находиться в начале строки ^.

Могут быть и другие варианты. Но я не могу представить, как обернуть li-группы методами DOM, поскольку вы начинаете с текстового документа.

...