我有类似的HTML结构
<div class = article-comments>
<div class="article-comment">
<div class="article-comment-header">...</div>
<div class="article-comment-content">...</div>
</div>
<div class="article-comment">
<div class="article-comment-header">...</div>
<div class="article-comment-content">...</div>
</div>
</div>
.
.
.
</div>
我有一个div元素-comments,它包含许多其他div元素-comment。我需要得到header元素,它包含注释创建者名称,以及*content,它包含评论。我有这样的PHP代码:
foreach($bot->parseBetweenRegexArray($data, '<div.*class="article-comment-content">', '<'/div>') as $commentary ){
printf("comment: %s",$commentary);
foreach($bot->parseBetweenRegexArray($data, '<div.*class="article-comment-header">', '<'/div>') as $name) {
printf("name: %s",$name); '<br />';
}
}
但用这个代码我无法获得正确的顺序,比如评论作者的名字和相应的评论等等。如何做到这一点?
谢谢!
如果您不喜欢使用DOM(也不想将Regex与HTML一起使用),可以尝试用<div class="article-comment-header">
字符串explode
HTML文本。
结果数组的第一个元素(索引0)将是无用的(它都在第一个<div>
之前,所以从第二个(索引1)开始循环。
然后用</div>
分解第二个元素。第二个数组的第一个元素就是标头。
然后做一些类似的事情来找到作者。
提示:PHP explode()
函数提供了额外的参数$limit
,允许您仅将文本分隔为两部分。
我同意这不是最好的解决方案,但我认为很简单。我宁愿使用一些XML类来找到它。