php实现首页链接查询 友情链接检查的代码

代码如下:

<?php 
/* 
* 网站首页超链接反查 友情链接查询 外链查询 
* web技术爱好者 lost63.com原创 QQ:35501547 
* 转载请注明出处 
*/ 

if($_GET['action']=="check"){ 

$domain=$_POST['domain']; 

//域名表单项为空,则获取地址栏参数 
if($domain==""){ 
$domain=$_GET['domain']; 
} 

//网址 
$url="http://".$domain; 

//读取网页,返回网页源文件内容 
function read_url($str){ 

$file=fopen($str,"r") or die($str.'->远程网址读取失败! <a href="?next='.($_GET['next']+1).'&action=check&domain='.$_GET['domain'].'">点击继续查询</a><br>'); 
while(!feof($file)){ 
$result.=fgets($file,9999); 
} 
fclose($file); 
return $result; 

} 

//打开session 
session_start(); 

//如果$_SESSION['matches']没有赋值就设置它; 
if(!isset($_SESSION['matches'])){ 
$result=read_url($url); 

preg_match_all('/<a(.*?)href="(http:\/\/.*?)"(.*?)>(.*?)<\/a>/i',$result,$matches); 
$num=count($matches[2]); 
for($i=0;$i<$num;$i++){ 
if(strpos($matches[2][$i],$domain)>0){ 
unset($matches[2][$i]); 
} 
} 

$_SESSION['matches']=$matches[2]; 
} 
//直接从session中取出包含网址数组; 
$matches[2]=$_SESSION['matches']; 

$n=count($matches[2]); 

$next=0; 
$next+=$_GET['next']; 

$result=read_url($matches[2][$next]); 

if(strpos($result,$domain)>0){ 
$value=$matches[2][$next].' <font color=green>true</font><br>'; 
}else{ 
$value=$matches[2][$next].' <font color=red>false</font><br>'; 
} 
$values=$_COOKIE['check_result'].$value; 
setcookie("check_result",$values,time()+3600); 
echo $values; 

if($next==$n){ 
echo "扫描结束!"; 
}else{ 
echo '<meta http-equiv="refresh" content="1;URL=?next='.($next+1).'&action=check&domain='.$domain.'" />'; 
} 


}else{ 
//删除cookies 
setcookie("check_result","",time()-3600); 
echo '<form name="form1" method="post" action="?action=check"> 
<input type="text" name="domain"> 
<input type="submit" name="Submit" value="提交"> 
<font color="red">*</font>输入域名 如:jb51.net 
</form>'; 
} 
?>

相关推荐