PHP - 通过换行符或段落的preg_split html

时间:2011-10-12 09:05:21

标签: php html preg-split

我有一些像这样的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 个答案:

答案 0 :(得分:2)

也许这种模式:/(<\s*p\s*\/?>)|(<\s*br\s*\/?>)/会对你有帮助吗?请参阅demo

答案 1 :(得分:0)

您需要按字符串的形状将字符串拆分。 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];

答案 2 :(得分:0)

不是100%确定s模式修饰符是必要的,但这应该有效,并按照指定捕获第二个值中的<br><br>

$result_array = preg_split("/(?=<br><br>)/is", $my_string);