来自原始网页的代码
<html>
<div class="clear"></div>
<div class="slider">
<ul>
<li>
<a title="title1" href="http://www.link.com" >
<img title="title1" alt="" src="http://www.link.com/1.jpg" /></a>
</li>
<li>
<a title="title2" href="http://www.link.com" >
<img title="title2" alt="" src="http://www.link.com/2.jpg" /></a>
</li>
</ul>
</div>
<div class="clear"></div>
</html>
我想提取下面的细节(带标签)与下面的相同
<div class="slider">
<ul>
<li>
<a title="title1" href="http://www.link.com" >
<img title="title1" alt="" src="http://www.link.com/1.jpg" /></a>
</li>
<li>
<a title="title2" href="http://www.link.com" >
<img title="title2" alt="" src="http://www.link.com/2.jpg" /></a>
</li>
</ul>
</div>
检查了之前发布的许多问题,但我找不到类似的问题,所以请有人帮我解决。
感谢
要正确地废弃它们,您需要PHP的DOMDOcument扩展的DOMDocument::loadHTML()
、DOMDocument::getElementsByTagName()
、DomNode::attributes()
、DOMNode::getNamedItem()
函数。
要操作HTML,最好不要使用像preg_replace
这样的正则表达式。为什么?请参阅此问题。您可以使用phpQuery作为HTML解析器。
使用以下命令安装它(您需要pear):
pear channel-discover phpquery-pear.appspot.com
pear install phpquery/phpQuery
安装后,您可以执行以下操作:
<?php
$html = file_get_contents("http://www.your-url.com/");
$pq = phpQuery::newDocumentHTML($html);
echo $pq['.slider']; // Output the contents of tags with class="slider"
有关更多示例代码和文档,请访问phpQuery网页
编辑:
如果你想使用另一个HTML解析解决方案,你可以看看如何在PHP中解析和处理HTML/XML?