HTML
<div class="imgw">
<ul>
<li>
<a href="http://somesites/index.html">
<img src="http://somesites.com/picture.jpg"/>
</a>
</li>
</ul>
</div>
PHP
$dom = new DOMDocument();
$dom->loadHTML($html);
$div = $dom->getElementByClass('imgw');
$links = $div->getElementsByTagName('a');
foreach ($links as $link) {
$li = $link->getAttribute('href');
echo ($li."<br>");
}
我一直在看这个(PHP DOMDocument
),但我仍然不明白如何让它发挥作用。
答案 0 :(得分:0)
问题1是您没有使用错误报告/检查错误日志。错误报告/日志会告诉您:
致命错误:调用未定义的方法DOMDocument :: getElementByClass()
所以getElementByClass
不是DOMDocument的功能。您可以遍历所有div
,检查它们是否具有您要查找的类,然后如果这样解析这些链接。
$html = '<div class="imgw">
<ul>
<li >
<a href="http://somesites/index.html">
<img src="http://somesites.com/picture.jpg"/>
</a>
</li>
</ul>
</div>';
$dom = new DOMDocument();
$dom->loadHTML($html);
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div){
if(preg_match('/\bimgw\b/', $div->getAttribute('class'))) {
$links = $div->getElementsByTagName('a');
foreach($links as $link){
$li = $link->getAttribute('href');
echo ($li."<br>");
}
}
}
输出:
http://somesites/index.html<br>