PHP获取指定URL页面中的全部链接
href
html
nbsp
url
PHP获取指定URL页面中的所有链接
form:http://www.uphtm.com/php/253.html
这个东西其实我们开发人员来讲常用了,以前做一个抓取其它网站友情连接时用过,今天看到一朋友整理了一个PHP获取指定URL页面中的所有链接函数,整理过来我们一起来看看吧。
以下代码可以获取到指定URL页面中的所有链接,即所有a标签的href属性:
- // 获取链接的HTML代码
- $html = file_get_contents('http://www.111cn.net');
- $dom = new DOMDocument();
- @$dom->loadHTML($html);
- $xpath = new DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i length; $i++) {
- $href = $hrefs->item($i);
- $url = $href->getAttribute('href');
- echo $url.'
'; - }
这段代码会获取到所有a标签的href属性,但是href属性值不一定是链接,我们可以在做个过滤,只保留http开头的链接地址:
- // 获取链接的HTML代码
- $html = file_get_contents('http://www.111cn.net');
- $dom = new DOMDocument();
- @$dom->loadHTML($html);
- $xpath = new DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i length; $i++) {
- $href = $hrefs->item($i);
- $url = $href->getAttribute('href');
- // 保留以http开头的链接
- if(substr($url, 0, 4) == 'http')
- echo $url.'
'; - }
fopen()函数读取指定网页中的所有链接并统计出数量,在一些需要采集网页页容的地方,适合使用本代码,本例以读取百度首页为例,找出百度首页中所有的链接地址,代码经过测试,完全可用:
- if(empty($url))$url = "http://www.baidu.com/";//需要采集链接的URL地址
- $site=substr($url,0,strpos($url,"/",8));
- $base=substr($url,0,strrpos($url,"/")+1);//文件所在目录
- $fp = fopen($url, "r" );//打开url地址页面
- while(!feof($fp))$contents.=fread($fp,1024);
- $pattern="|href=['\"]?([^ '\"]+)['\" ]|U";
- preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);//使用正则匹配所有href=
- for($i=0;$i
- if(!eregi("://",$regArr[$i][1]))//判断是否是相对路径,即是否还有://
- if(substr($regArr[$i][1],0,1)=="/")//是否是站点的根目录
- echo "link".($i+1).":".$site.$regArr[$i][1]."
";//根目录- else
- echo "link".($i+1).":".$base.$regArr[$i][1]."
";//当前目录- else
- echo "link".($i+1).":".$regArr[$i][1]."
";//相对路径- }
- fclose($fp);
- ?>
form:http://www.uphtm.com/php/253.html
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
Windows 11 KB5054979中的新功能以及如何解決更新問題
3 週前
By DDD
如何修復KB5055523無法在Windows 11中安裝?
2 週前
By DDD
Inzoi:如何申請學校和大學
3 週前
By DDD
如何修復KB5055518無法在Windows 10中安裝?
2 週前
By DDD
Roblox:Dead Rails - 如何召喚和擊敗Nikola Tesla
4 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)