从数据库循环遍历HTML字符串中的<p>标记

Cai*_*der 0 html php string parsing loops

我想循环

来自数据库的HTML字符串中的标签.

例:

$htmlString = "<p>1</p><p>2</p><p>3</p>";
Run Code Online (Sandbox Code Playgroud)

我想循环$htmlString变量并获得1,2,3,如下所示:

1
2
3
Run Code Online (Sandbox Code Playgroud)

我试过这个simplexml_load_string()功能:

$x = "<p>1</p><p>2</p>";
$xml = simplexml_load_string($x);
foreach ($xml->p as $p) {
    {
        echo $p;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

Warning: simplexml_load_string(): Entity: line 1: parser error : Extra content at the end of the document

Warning: simplexml_load_string(): <p>1</p><p>2</p>

Warning: simplexml_load_string(): ^ 

Notice: Trying to get property 'p' of non-object

Warning: Invalid argument supplied for foreach()
Run Code Online (Sandbox Code Playgroud)

meg*_*382 6

您应该使用DOMDocument它,它将帮助您更轻松地解析HTML,这是一个示例代码:

<?php

$string = "<p>1</p><p>2</p>";
$domDocument = new DOMDocument();
$domDocument->loadHTML($string);
$paragraphElements = $domDocument->getElementsByTagName('p');
foreach ($paragraphElements as $p) {

        var_dump($p->nodeValue);

}
Run Code Online (Sandbox Code Playgroud)

输出:

string '1' (length=1)
string '2' (length=1)
Run Code Online (Sandbox Code Playgroud)