PHP 将每个段落拆分为数组

标签 php html regex split

我想将每个段落拆分到一个数组中。

我目前的方法行不通:

$paragraphs = preg_split( '|</p>|', $text, PREG_SPLIT_OFFSET_CAPTURE );

我怎样才能从中得到:

$text = <<<TEXT
        <p>Hello!</p>
        <p style="border: 1px solid black;">How are you,<br /> today?</p>
TEXT;

对此

$paragraphs = array(
     '<p>Hello!</p>',
     '<p style="border: 1px solid black;">How are you,<br /> today?</p>'
);

最佳答案

您可以像下面这样使用 DOMDocument()

 <?php
$text = <<<TEXT
    <p>Hello!</p>
    <p style="border: 1px solid black;">How are you,<br /> today?</p>
TEXT;

$dom = new DOMDocument();
$paragraphs = array();
$dom->loadHTML($text);
foreach($dom->getElementsByTagName('p') as $node)
{

    $paragraphs[] = $dom->saveHTML($node);

}
print_r($paragraphs);
?>

输出

Array
(
  [0] => <p>Hello!</p>
  [1] => <p style="border: 1px solid black;">How are you,<br> today?</p>
)

关于PHP 将每个段落拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966238/

相关文章:

php - 为什么 -stringWithContentsOfURL 不返回我的 php echo?

php - 在没有 $request 的情况下执行 Laravel 验证

javascript - 为具有 2 位小数的数字添加逗号分隔符

html - 垂直对齐中间没有运气

html - CSS 正则表达式标志 : ignore case, 全局搜索

Java 正则表达式匹配 Java 代码中方法调用的第一个参数

php - 使用 mysqli 准备好的语句在所有记录检索中出错

php - 从本周获取条目?

javascript - 使用 Jquery 的动态页面 .load 冲突

regex - 正则表达式替换表达式中的当前位置