PHP - preg_split html 按换行符或段落

发布于 2024-12-09 04:03:35 字数 501 浏览 0 评论 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”标签之后的文本。

I have some html like this:

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

And I'm trying to split it in two parts and in the end, to get this:

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

The idea is to have the first array element containing either the first two "paragraphs". By "paragraph" I mean, either the text inside a "p" tag, or the text after two consecutive "br" tags.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

死开点丶别碍眼 2024-12-16 04:03:35

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

Maybe this pattern: /(<\s*p\s*\/?>)|(<\s*br\s*\/?>)/ would help you? See the demo

凝望流年 2024-12-16 04:03:35

您需要根据字符串的外观将字符串拆分。 preg_split 将按正则表达式进行拆分,尽管这是可能的,但我怀疑这不是您所需要的。

这是由两个
标签分割

$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];

You need to split a string by a string by the looks of it. preg_split will split by a regular expression, although it is possible, I suspect it's not what you need.

Here's Splitting by two <br> tags

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

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

This will output as an array

echo $split_string[0];
echo $split_string[1];
海未深 2024-12-16 04:03:35

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

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

Not 100% sure the s pattern modifier is necessary, but this should work, and capture the <br><br> in the 2nd value as specified.

$result_array = preg_split("/(?=<br><br>)/is", $my_string);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文