我 simplephpdom 使用此代码获取a
href链接值:
$html = file_get_html($url);
foreach($html->find('a') as $element) $array[] = $element->href . '<br>';
现在,问题是,如果链接以斜杠(/)开头,则链接无效!
我如何拥有有效的链接?
例如,链接如下:
<a href="/news45454.html">Test link</a>
如果我使用phpsimpledom代码,我会:
/news45454.html
但是,我希望:
http://example.com/news45454.html
如何获得这个?
如果链接以斜杠开头,我们可以测试一下,然后添加网站网址吗? 怎么样?
答案 0 :(得分:2)
基本上,您需要测试HREF元素是否是有效的完整URL。如果验证通过,您可以继续将其添加到阵列中。但是,如果验证失败,则需要连接基本名称(应该是网站的域名)。
$html = file_get_html($url);
foreach($html->find('a') as $element) {
if(filter_var($url, FILTER_VALIDATE_URL)) {
// Valid URL, add to array.
$array[] = $element->href . '<br>';
} else {
// URL is invalid, add basename.
$array[] = basename($url) . $element->href . '<br>';
}
}
这可能需要对其他情况(例如<a href="#">
)进行一些调整,但它应该适用于您概述的情况。
答案 1 :(得分:1)