php链接网页代码,PHP取网页所有链接实现程序代码总结

本文章来给大家介绍在PHP取网页所有链接实现程序代码,有直接利用正则的也有用在采集中过滤所有连接地址,有需要了解的朋友可参考。

我们核心代码就是正则表达试了代码如下

复制代码

function get_all_url(http://pic3.phprm.com/2013/05/18/$code.jpg){

preg_match_all(‘/"' ]+)["|']?s*[^>]*>([^>]+)/i’,$code,$arr);

return array(‘name’=>$arr[2],’url’=>$arr[1]);

}

上面只是简单的下面看全例代码如下

复制代码

http://pic3.phprm.com/2013/05/18/$url.jpg ='http://www.phprm.com';

$body=@file_get_contents($url);

preg_match_all('/href=['"]?([^'"]*)['"]?>(.*)/i',$body,$b);

$nums = array();

foreach($b[1] as $u){

if(in_array($u,$nums)){

continue;

}

$nums[]=$u;

$title=strip_tags($u);

echo $title."";

}

利用curl函数来获取代码如下

复制代码

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.phprm.com/');

// 只需返回HTTP header

curl_setopt($ch, CURLOPT_HEADER, 1);

// 页面内容我们并不需要

// curl_setopt($ch, CURLOPT_NOBODY, 1);

// 返回结果,而不是输出它

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$html = curl_exec($ch);

$info = curl_getinfo($ch);

if ($html === false) {

echo "cURL Error: " . curl_error($ch);

}

curl_close($ch);

$linkarr = _striplinks($html);

// 主机部分,补全用

$host = 'http://www.phprm.com/';

if (is_array($linkarr)) {

foreach ($linkarr as $k => $v) {

$linkresult[$k] = _expandlinks($v, $host);

}

}

printf("

此页面的所有链接为:%sn", var_export($linkresult , true));

?>

获取所有网址,但只有不重复的数据代码如下

复制代码

$e=clinchgeturl(http://pic3.phprm.com/2013/05/18/forumdisplay.jpg);

var_dump($e);

function clinchgeturl($url)

{

//$url="http://127.0.0.1/1.htm";

//$rootpath="http://fsrootpathfsfsf/yyyyyy/";

//var_dump($rrr);

if(eregi('(.)*[.](.)*',$url)){

$roopath=split("/",$url);

$rootpath="http://".$roopath[2]."/";

$nnn=count($roopath)-1;for($yu=3;$yu   // var_dump($rootpath); //http: ,'',127.0.0.1,xnml,index.php

}

else{$rootpath=$url;//var_dump($rootpath);

}

if(isset($url)){

echo "$url 有下列裢接:

";

$fcontents = file($url);

while(list(,$line)=each($fcontents)){

while(eregi('(href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-] [?]?[^"]*"?)',$line,$regs)){

//$regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-] )("?)',"2",$regs[1]);

$regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*["]?)([[:alnum:]:@/._-] [?]?[^"]*)(.*)[^"/]*(["]?)',"2",$regs[1]);

if(!eregi('^http://',$regs[1])){

if(eregi('^..',$regs[1])){

// $roopath=eregi_replace('(http://)?([[:alnum:]:@/._-] )[[:alnum:] ](.*)[[:alnum:] ]',"http://2",$url);

$roopath=split("/",$rootpath);

$rootpath="http://".$roopath[2]."/";

//echo "这是根本d :"."n";

$nnn=count($roopath)-1;for($yu=3;$yu   //var_dump($rootpath);

if(eregi('^..[/[:alnum:]]',$regs[1])){

//echo "这是../目录/ :"."n";

//$regs[1]="../xx/xxxxxx.xx";

// $rr=split("/",$regs[1]);

//for($oooi=1;$oooi  $rrr=$regs[1];

// {$rrr.="/".$rr[$oooi];

$rrr = eregi_replace("^[.][.][/]",'',$rrr); /

永久地址:

转载随意~请带上教程地址吧^^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值