PHP - preg_split html по разрыву строки или абзацу - PullRequest
0 голосов
/ 12 октября 2011

У меня есть немного HTML, как это:

<p>Lorem ipsum</p>
Dolor sit amet
<br><br>
consectetur
<p>adipiscing</p>
<br>elit.

И я пытаюсь разделить его на две части и, в конце концов, получить это:

Array(
    [0] => <p>Lorem ipsum</p>
           Dolor sit amet
    [1] => <br><br>
           consectetur
           <p>adipiscing</p>
           <br>elit.
)

Идеядолжен иметь первый элемент массива, содержащий либо первые два «абзаца».Под «абзацем» я подразумеваю либо текст внутри тега «p», либо текст после двух последовательных тегов «br».

Ответы [ 3 ]

2 голосов
/ 12 октября 2011

Может быть, этот шаблон: /(<\s*p\s*\/?>)|(<\s*br\s*\/?>)/ поможет вам? Смотрите демо

0 голосов
/ 12 октября 2011

Не на 100% уверен, что модификатор шаблона s необходим, но это должно сработать, и запишите <br><br> во 2-м значении, как указано.

$result_array = preg_split("/(?=<br><br>)/is", $my_string);
0 голосов
/ 12 октября 2011

Вам нужно разделить строку на строку по внешнему виду. preg_split будет разделяться регулярным выражением, хотя это возможно, я подозреваю, что это не то, что вам нужно.

Вот разделение на две <br> метки

$my_string = '<p>Lorem ipsum</p>
Dolor sit amet
<br><br>
consectetur
<p>adipiscing</p>
<br>elit.';

$split_string = explode('<br><br>', $my_string);

Это будет выводиться как массив

echo $split_string[0];
echo $split_string[1];
...