php实现首页链接查询 友情链接检查的代码
author:一佰互联 2019-05-01 click:216
复制代码 代码如下:
<?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>";
}
?>