原始网页的代码
<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>
之前检查了很多问题,但我找不到类似的东西,所以请有人帮我解决这个问题。
由于
答案 0 :(得分:3)
要正确删除它们,您需要PHP的DOMDOcument扩展程序的DOMDocument::loadHTML()
,DOMDocument::getElementsByTagName()
,DomNode::attributes()
,DOMNode::getNamedItem()
个函数。
答案 1 :(得分:2)
要操纵HTML,最好不要使用像preg_replace
这样的正则表达式。为什么?见this question。您可以使用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 web page
修改强>
如果您想使用其他HTML解析解决方案,可以查看How do you parse and process HTML/XML in PHP?