0

我有一些这样的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”标签后的文本。

4

3 回答 3

4

也许这种模式:/(<\s*p\s*\/?>)|(<\s*br\s*\/?>)/会帮助你吗?查看演示

于 2011-10-12T10:03:54.007 回答
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];
于 2011-10-12T09:10:48.217 回答
0

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

$result_array = preg_split("/(?=<br><br>)/is", $my_string);
于 2011-10-12T09:44:52.740 回答