前言

今天看了看菜鸟教程发现一段能获取页面全部链接的PHP代码,通过获取a标签下面href 属性

代码

原版代码

// 获取链接的HTML代码
$html = file_get_contents('https://handsl.cn');

$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 />';
}

我们的页面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');
   
   // 保留以http开头的链接
   if(substr($url, 0, 4) == 'http')
      echo $url.'<br />';
}
最后修改:2020 年 07 月 24 日 08 : 15 PM