0
我提取所有鏈接包含在頁面上的錨或alt屬性的圖像包括在鏈接中,如果這首先來。php DOMDocument提取鏈接與錨或alt
$html = '<a href="lien.fr">Anchor</a>';
必須返回 「lien.fr錨」
$html = '<a href="lien.fr"><img alt="Alt Anchor">Anchor</a>';
必須返回 「lien.fr; Alt鍵錨」
$html = '<a href="lien.fr">Anchor<img alt="Alt Anchor"></a>';
必須返回 「lien.fr錨」
我做了:
$doc = new DOMDocument();
$doc->loadHTML($html);
$out = "";
$n = 0;
$links = $doc->getElementsByTagName('a');
foreach ($links as $element) {
$href = $img_alt = $anchor = "";
$href = $element->getAttribute('href');
$n++;
if (!strrpos($href, "panier?")) {
if ($element->firstChild->nodeName == "img") {
$imgs = $element->getElementsByTagName('img');
foreach ($imgs as $img) {
if ($anchor = $img->getAttribute('alt')) {
break;
}
}
}
if (($anchor == "") && ($element->nodeValue)) {
$anchor = $element->nodeValue;
}
$out[$n]['link'] = $href;
$out[$n]['anchor'] = $anchor;
}
}
這似乎是工作,但如果有一些空間,或縮進它不 作爲
$html = '<a href="link.fr">
<img src="ceinture-gris" alt="alt anchor"/>
</a>';
在$元素 - > firstChild->節點名稱將文本