PHP 获取指定 URL 页面中的所有链接

以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:

// 获取链接的 HTML 代码
$html = file_get_contents('http://www.example.com');

$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate('/html/body//a');

for ($i = 0; $i < $hrefs->length; $i++) {
   $href = $hrefs->item($i);
   $url = $href->getAttribute('href');
   echo $url.'<br />';
}

这段代码会获取到所有 a 标签的 href 属性,但是 href 属性值不一定是链接,我们可以在做个过滤,只保留 http 开头的链接地址:

// 获取链接的 HTML 代码
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate('/html/body//a');

for ($i = 0; $i < $hrefs->length; $i++) {
   $href = $hrefs->item($i);
   $url = $href->getAttribute('href');
   
   // 保留以 http 开头的链接
   if(substr($url, 0, 4) == 'http')
      echo $url.'<br />';
}
© 版权声明
THE END
打赏一根烟,继续保持。
点赞0打赏作者 分享
评论 抢沙发
头像
友好交流,请勿发纯表情,请勿灌水,违者封号喔
提交
头像

昵称

取消
昵称表情代码图片