PHP读取指定URL网页地址中的所有链接
本例子演示在PHP下使用fopen()函數讀取指定網頁中的所有鏈接并統計出數量,在一些需要采集網頁頁容的地方,適合使用本代碼,本例以讀取百度首頁為例,找出百度首頁中所有的鏈接地址,代碼經過測試,完全可用:
[php]<?
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<count($regArr);$i++){//找出所有匹配的鏈接
if(!eregi("://",$regArr[$i][1]))//判斷是否是相對路徑,即是否還有://
if(substr($regArr[$i][1],0,1)=="/")//是否是站點的根目錄
echo "link".($i+1).":".$site.$regArr[$i][1]."<br/>";//根目錄
else
echo "link".($i+1).":".$base.$regArr[$i][1]."<br/>";//當前目錄
else
echo "link".($i+1).":".$regArr[$i][1]."<br/>";//相對路徑
}
fclose($fp);
?>[/php]
運行結果截圖如下所示:
總結
以上是生活随笔為你收集整理的PHP读取指定URL网页地址中的所有链接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: emlog模板中获取缩略图不同方法
- 下一篇: 李开复:给热血创业青年的八桶冷水