使用PHP循环遍历<div>元素

Chr*_*ris 1 php html-parsing

我在一个字符串中有一个html块,基本上是一个div列表...每个div都有html里面我要单独解析.

我无法弄清楚如何循环初始div.

有人可以帮忙吗?

一个html的例子:

<div><!-- stuff in here --></div>
<div><!-- stuff in here --></div>
<div><!-- stuff in here --></div>
<div><!-- stuff in here --></div>
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望最终的代码循环4次,并为我提供每个div的内容

Joh*_*nde 8

这应该工作(如果HTML在外部文件中):

$doc = new DOMDocument();
$doc->loadHTMLFile('test.html');
$divs = $doc->getElementsByTagName('div');
foreach($divs as $n) {
    echo $n->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)

如果是包含HTML的字符串,您可以执行以下操作:

$doc = new DOMDocument();
$doc->loadHTML('<html><body><div>A</div><div>B</div><div>C</div><div>D</div></body></html>');
$divs = $doc->getElementsByTagName('div');
foreach($divs as $n) {
  echo $n->nodeValue . "\n";
}
Run Code Online (Sandbox Code Playgroud)

会产生:

A
B
C
D
Run Code Online (Sandbox Code Playgroud)

  • +1只是为了不提正节表达式.:-) (2认同)