PHP+Ajax 网站SEO查询工具 提供代码

  # Name: PHP+Ajax 网站SEO查询工具

  # Author: 年华<[email protected]> [Q:4908220]

  # Homepage:http://master8.net

  使用说明:

  1.服务器必须至少支持allow_url_fopen,curl,fsockopen中的一种,具体请咨询服务器管理员。

  2.请尊重别人的劳动成果!你可以任意修改并使用此程序,但不允许修改后公开发布!传播此程序亦应保持此压缩包完整性!

  3.如果在使用中遇到任何问题,请访问http://master8.net/bbs/提出以便得到解决。

  ajax.js

  

复制代码 代码如下:

  // Name: PHP+Ajax 网站SEO查询工具

  // Author: 年华<[email protected]> [Q:4908220]

  // Notice: Use It After READ readme.txt

  // (c) 2007 www.master8.net

  var xmlHttp;

  function makeRequest(queryString) {

  var msXml = new Array();

  msXml[0] = "Microsoft.XMLHTTP";

  msXml[1] = "MSXML2.XMLHTTP.5.0";

  msXml[2] = "MSXML2.XMLHTTP.4.0";

  msXml[3] = "MSXML2.XMLHTTP.3.0";

  msXml[4] = "MSXML2.XMLHTTP";

  if (window.xmlHttpRequest) {

  xmlHttp = new XMLHttpRequest();

  } else {

  for (var i = 0; i < msXml.length; i++) {

  try {

  xmlHttp = new ActiveXObject(msXml[i]);

  break;

  } catch (e) {

  xmlHttp = new xmlHttpRequest();

  }

  }

  }

  xmlHttp.onreadystatechange = getRequest;

  xmlHttp.open('post', 'seo.php', true);

  xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  xmlHttp.send(queryString);

  }

  function getRequest() {

  if(xmlHttp.readyState==4) {

  if(xmlHttp.status==200) {

  $('seo_result').innerHTML =  xmlHttp.responseText;

  }

  }

  }

  seo.php

  

复制代码 代码如下:

  <?php

  # Name: PHP+Ajax 网站SEO查询工具

  # Author: 年华<[email protected]> [Q:4908220]

  # Notice: Use It After READ readme.txt

  # (c) 2007 www.master8.net

  define('IN_SEO', TRUE);

  error_reporting(E_ERROR);

  set_time_limit(0);

  isset($_SERVER['HTTP_REFERER']) or exit('Invalid Request');

  preg_match("/".$_SERVER['HTTP_HOST']."/i", $_SERVER['HTTP_REFERER']) or exit('Access Denied');

  header("Content-Type:text/html;charset=gb2312");

  include './robot.php';

  require './function.php';

  @extract($_POST);

  isset($job) && isset($domain) or exit('Invalid Request');

  $domain = strtolower($domain);

  is_domain($domain) or exit('Invalid Domain');

  $jobs=array('google','baidu','yahoo','msn','sogou','iask','so163','zhongsou','vnet');

  $result = '';

  if(in_array($job, $jobs))

  {

  $result = get_seo_info($domain, $job);

  }

  elseif($job == 'alexa')

  {

  $result = Alexa($domain);

  }

  elseif($job == 'chinarank')

  {

  $result = ChinaRank($domain);

  }

  elseif($job == 'pagerank')

  {

  $result = '<img src="./images/pagerank'.PageRank($domain).'.gif" align="absmiddle" /> '.$domain;

  if(substr($domain, 0, 4) == 'www.')

  {

  $domain = substr($domain, 4);

  $result.= '  <img src="./images/pagerank'.PageRank($domain).'.gif" align="absmiddle" /> '.$domain;

  }

  }

  elseif($job == 'sogourank')

  {

  $result = sogouRank($domain).' '.$domain;

  if(substr($domain, 0, 4) == 'www.')

  {

  $domain = str_replace("www.", '', $domain);

  $result = $result.'  '.sogouRank($domain).' '.$domain;

  }

  }

  !empty($result) or exit('Invalid Request');

  echo '<img src="./images/yes.gif" align="absmiddle" /> '.$result;

  ?>

  function.php

  

复制代码 代码如下:

  <?php

  # Name: PHP+Ajax 网站SEO查询工具

  # Author: 年华<[email protected]> [Q:4908220]

  # Notice: Use It After READ readme.txt

  # (c) 2007 www.master8.net

  defined('IN_SEO') or exit('Access Denied');

  function get_seo_info($domain, $bot)

  {

  global $ROBOT;

  if(!array_key_exists($bot, $ROBOT)) return 'Invalid Robot';

  $content = '';

  $site_info = '';

  $link_info = '';

  $content = get_content($ROBOT[$bot]['site_url'].$domain);

  if(empty($content)) return 'Unkown Error...';

  if(preg_match($ROBOT[$bot]['site_pattern'], $content, $matches)) $site_info = $matches[1];

  $content = get_content($ROBOT[$bot]['link_url'].$domain);

  if(preg_match($ROBOT[$bot]['link_pattern'], $content, $matches)) $link_info = $matches[1];

  return $ROBOT[$bot]['name'].' 收录: <a href="'.$ROBOT[$bot]['site_url'].$domain.'" target="_blank">'.$site_info.'</a>  反向链接: <a href="'.$ROBOT[$bot]['link_url'].$domain.'" target="_blank">'.$link_info.'</a>';

  }

  function sogouRank($domain)

  {

  $rank = '';

  $pr = 0;

  $content = get_content('http://www.sogou.com/web?query='.$domain);

  if(preg_match("/<\/span>([0-9]{1,})<\/dd>/", $content, $matches))

  {

  $pr = intval($matches[1]);

  $width = ceil(65*$pr/100);

  $rank = '<img src="./images/sg_left.gif" width="2" height="11" /><img src="./images/sg_left_img.gif" width="'.$width.'" height="11" /><img src="./images/sg_right_img.gif" width="'.(65-$width).'" height="11" /><img src="./images/sg_right.gif" width="2" height="11" />';

  }

  $rank = '<a href="http://www.sogou.com/web?query=link%3A'.$domain.'" target="_blank" title="搜狗Rank:'.$pr.'">'.$rank.'</a> '.$pr;

  return $rank;

  }

  function ChinaRank($domain)

  {

  $rank = '';

  $content = get_content('http://www.chinarank.org.cn/detail/Info.do?url='.$domain);

  if(preg_match("/<strong>排名<\/strong>(.*)<\/tr>/", $content, $matches))

  {

  $p = trim(str_replace('</td>', '', $matches[1]));

  $p = explode("<td>", $p);

  if(isset($p[1])) $rank.= ' 今日:'.$p[1];

  if(isset($p[2])) $rank.= ' 本周:'.$p[2];

  if(isset($p[3])) $rank.= ' 三月:'.$p[3];

  }

  $rank = '<a href="http://www.chinarank.org.cn/detail/Info.do?url='.$domain.'" target="_blank">'.$rank.'</a>';

  return $rank;

  }

  function Alexa($domain)

  {

  $alexa = '';

  $content = get_content('http://www.alexa.com/data/details/traffic_details?url='.$domain);

  if(preg_match("/3 mos. Change([\s\S]*?)<\/table>/", $content, $matches))

  {

  $change = strpos($matches[1], 'down_arrow.gif') ? '下降' : '上升';

  $p = strip_tags($matches[1], '<td>');

  $p = trim(str_replace(array(" ", "\n", "</td>"), array('', '', ''), $p));

  $p = explode("<td>", $p);

  if(isset($p[1])) $alexa.= ' 今日:'.$p[1];

  if(isset($p[2])) $alexa.= ' 本周:'.$p[2];

  if(isset($p[3])) $alexa.= ' 本月:'.$p[3];

  if(isset($p[4])) $alexa.= ' '.$change.':'.$p[4];

  }

  if(preg_match("/Review for $domain:<\/span> (.*)<br>/", $content, $matches))

  {

  $alexa = $alexa.' 等级:'.$matches[1];

  }

  $alexa = '<a href="http://www.alexa.com/data/details/traffic_details?url='.$domain.'" target="_blank">'.$alexa.'</a>';

  return $alexa;

  }

  function is_domain($domain)

  {

  if(preg_match("/^([0-9a-z\-]{1,}\.)?[0-9a-z\-]{2,}\.([0-9a-z\-]{2,}\.)?[a-z]{2,}$/i", $domain))

  {

  return true;

  }

  else

  {

  return false;

  }

  }

  function get_content($url)

  {

  if(!strpos($url, '://')) return 'Invalid URI';

  $content = '';

  if(ini_get('allow_url_fopen'))

  {

  $content = file_get_contents($url);

  }

  elseif(function_exists('curl_init'))

  {

  $handle = curl_init();

  curl_setopt($handle, CURLOPT_URL, $url);

  curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);

  curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);

  curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 0);

  $content = curl_exec($handle);

  curl_close($handle);

  }

  elseif(function_exists('fsockopen'))

  {

  $urlinfo = parse_url($url);

  $host = $urlinfo['host'];

  $str = explode($host, $url);

  $uri = $str[1];

  unset($urlinfo, $str);

  $content = '';

  $fp = fsockopen($host, 80, $errno, $errstr, 30);

  if(!$fp)

  {

  $content = 'Can Not Open Socket...';

  }

  else

  {

  $out = "GET $uri   HTTP/1.1\r\n";

  $out.= "Host: $host \r\n";

  $out.= "Accept: */*\r\n";

  $out.= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";

  $out.= "Connection: Close\r\n\r\n";

  fputs($fp, $out);

  while (!feof($fp))

  {

  $content .= fgets($fp, 4069);

  }

  fclose($fp);

  }

  }

  if(empty($content)) $content = 'Can Not Open Url, Please Check You Server ... <br/>For More Information, Please Visit www.master8.net';

  return $content;

  }

  function PageRank($domain)

  {

  $result = get_content('http://www.google.com/search?client=navclient-auto&ch=6'. GCH(strord('info:' . $domain)) . '&ie=UTF-8&oe=UTF-8&features=Rank&q=info:' . urlencode($domain));

  if (preg_match('/\d+:\d+:(\d+)/', $result, $matches))

  {

  return intval($matches[1]);

  }

  else

  {

  return 0;

  }

  }

  function strord($string)

  {

  $strlen = strlen($string);

  for($i = 0; $i < $strlen; $i++)

  {

  $result[$i] = ord($string{$i});

  }

  return $result;

  }

  function GCH($url, $length=null)

  {

  $length = sizeof($url);

  $a = $b = 0x9E3779B9;

  $c = 0xE6359A60;

  $k = 0;

  $len = $length;

  while($len >= 12)

  {

  $a += ($url[$k + 0] + ($url[$k + 1] << 8) + ($url[$k + 2] << 16) + ($url[$k + 3] << 24));

  $b += ($url[$k + 4] + ($url[$k + 5] << 8) + ($url[$k + 6] << 16) + ($url[$k + 7] << 24));

  $c += ($url[$k + 8] + ($url[$k + 9] << 8) + ($url[$k + 10] << 16) + ($url[$k + 11] << 24));

  $mix = mix($a, $b, $c);

  $a = $mix[0];

  $b = $mix[1];

  $c = $mix[2];

  $k += 12;

  $len -= 12;

  }

  $c += $length;

  switch($len) {

  case 11: $c += ($url[$k + 10] << 24);

  case 10: $c += ($url[$k + 9] << 16);

  case 9 : $c += ($url[$k + 8] << 8);

  case 8 : $b += ($url[$k + 7] << 24);

  case 7 : $b += ($url[$k + 6] << 16);

  case 6 : $b += ($url[$k + 5] << 8);

  case 5 : $b += ($url[$k + 4]);

  case 4 : $a += ($url[$k + 3] << 24);

  case 3 : $a += ($url[$k + 2] << 16);

  case 2 : $a += ($url[$k + 1] << 8);

  case 1 : $a += ($url[$k + 0]);

  }

  $mix = mix($a, $b, $c);

  return $mix[2];

  }

  function mix($a, $b, $c)

  {

  $a -= $b;

  $a -= $c;

  $a ^= (zeroFill($c, 13));

  $b -= $c;

  $b -= $a;

  $b ^= ($a << 8);

  $c -= $a;

  $c -= $b;

  $c ^= (zeroFill($b, 13));

  $a -= $b;

  $a -= $c;

  $a ^= (zeroFill($c, 12));

  $b -= $c;

  $b -= $a;

  $b ^= ($a << 16);

  $c -= $a;

  $c -= $b;

  $c ^= (zeroFill($b, 5));

  $a -= $b;

  $a -= $c;

  $a ^= (zeroFill($c, 3));

  $b -= $c;

  $b -= $a;

  $b ^= ($a << 10);

  $c -= $a;

  $c -= $b;

  $c ^= (zeroFill($b, 15));

  return array($a, $b, $c);

  }

  function zeroFill($a, $b)

  {

  $z = hexdec(80000000);

  if($z & $a)

  {

  $a = ($a >> 1);

  $a &= (~ $z);

  $a |= 0x40000000;

  $a = ($a >> ($b - 1));

  }

  else

  {

  $a = ($a>>$b);

  }

  return $a;

  }

  ?>

  robot.php

  

复制代码 代码如下:

  <?php

  # Name: PHP+Ajax 网站SEO查询工具

  # Author: 年华<[email protected]> [Q:4908220]

  # Notice: Use It After READ readme.txt

  # (c) 2007 www.master8.net

  defined('IN_SEO') or exit('Access Denied');

  $ROBOT['google']['name'] = 'Google';

  $ROBOT['google']['site_url'] = 'http://www.google.com/search?hl=zh-CN&q=site%3A';

  $ROBOT['google']['site_pattern'] = "/上约有 <b>(.*)<\/b> 项符合/";

  $ROBOT['google']['link_url'] = 'http://www.google.com/search?hl=zh-CN&q=link%3A';

  $ROBOT['google']['link_pattern'] = "/约有 <b>(.*)<\/b> 项链接到/";

  $ROBOT['baidu']['name'] = '百度';

  $ROBOT['baidu']['site_url'] = 'http://www.baidu.com/s?wd=site%3A';

  $ROBOT['baidu']['site_pattern'] = "/找到相关网页约(.*)篇/";

  $ROBOT['baidu']['link_url'] = 'http://www.baidu.com/s?wd=domain%3A';

  $ROBOT['baidu']['link_pattern'] = "/找到相关网页约(.*)篇/";

  $ROBOT['yahoo']['name'] = 'Yahoo';

  $ROBOT['yahoo']['site_url'] = 'http://search.cn.yahoo.com/search?p=site%3A';

  $ROBOT['yahoo']['site_pattern'] = "/共返回约 <strong>(.*)<\/strong> 项/";

  $ROBOT['yahoo']['link_url'] = 'http://search.cn.yahoo.com/search?p=linkdomain%3A';

  $ROBOT['yahoo']['link_pattern'] = "/共返回约 <strong>(.*)<\/strong> 项/";

  $ROBOT['sogou']['name'] = '搜狗';

  $ROBOT['sogou']['site_url'] = 'http://www.sogou.com/web?query=site%3A';

  $ROBOT['sogou']['site_pattern'] = "/找到 (.*) 个网页/";

  $ROBOT['sogou']['link_url'] = 'http://www.sogou.com/web?query=link%3A';

  $ROBOT['sogou']['link_pattern'] = "/找到 (.*) 个网页/";

  $ROBOT['iask']['name'] = '新浪';

  $ROBOT['iask']['site_url'] = 'http://www.iask.com/w?k=site%3A';

  $ROBOT['iask']['site_pattern'] = "/找到 <span class=\"ar\">(.*)<\/span> 篇网页/";

  $ROBOT['iask']['link_url'] = 'http://www.iask.com/w?k=domain%3A';

  $ROBOT['iask']['link_pattern'] = "/找到 <span class=\"ar\">(.*)<\/span> 篇网页/";

  $ROBOT['msn']['name'] = 'MSN';

  $ROBOT['msn']['site_url'] = 'http://search.msn.com/results.aspx?q=site%3A';

  $ROBOT['msn']['site_pattern'] = "/<h5>Page 1 of (.*)results<\/h5>/";

  $ROBOT['msn']['link_url'] = 'http://search.msn.com/results.aspx?q=link%3A';

  $ROBOT['msn']['link_pattern'] = "/<h5>Page 1 of (.*)results<\/h5>/";

  $ROBOT['so163']['name'] = '网易';

  $ROBOT['so163']['site_url'] = 'http://cha.so.163.com/so.php?q=site%3A';

  $ROBOT['so163']['site_pattern'] = "/共<\/span><SPAN class=black5> (.*) <\/span>/";

  $ROBOT['so163']['link_url'] = 'http://cha.so.163.com/so.php?q=link%3A';

  $ROBOT['so163']['link_pattern'] = "/共<\/span><SPAN class=black5> (.*) <\/span>/";

  $ROBOT['zhongsou']['name'] = '中搜';

  $ROBOT['zhongsou']['site_url'] = 'http://p.zhongsou.com/p?w=site%3A';

  $ROBOT['zhongsou']['site_pattern'] = "/找到(.*)条结果/";

  $ROBOT['zhongsou']['link_url'] = 'http://p.zhongsou.com/p?w=link%3A';

  $ROBOT['zhongsou']['link_pattern'] = "/找到(.*)条结果/";

  $ROBOT['vnet']['name'] = '电信114';

  $ROBOT['vnet']['site_url'] = 'http://search.114.vnet.cn/search_web.html?kw=site%3A';

  $ROBOT['vnet']['site_pattern'] = "/共搜到约(.*)个网页/";

  $ROBOT['vnet']['link_url'] = 'http://search.114.vnet.cn/search_web.html?kw=link%3A';

  $ROBOT['vnet']['link_pattern'] = "/共搜到约(.*)个网页/";

  ?>

  index.html

  

复制代码 代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

  <title>PHP+Ajax 网站SEO查询工具 Powered By Master8.NET</title>

  <meta name="author" content="站长吧 Master8.NET" />

  <meta name="description" content="PHP+Ajax 网站SEO查询工具" />

  <meta name="keywords" content="PHP,Ajax,网站SEO,查询,工具" />

  <style>

  body {

  margin-top:10px;

  background-color:#FFFFFF;

  font-family: Verdana, Arial, Helvetica, sans-serif;

  font-size: 12px;

  color: #000000;

  }

  img {

  border:none;

  }

  a:link,a:visited,a:active {

  color:#333333;

  text-decoration:none;

  }

  a:hover {

  color:#FF0000;

  text-decoration:underline;

  }

  .div {

  margin:auto;

  padding:5px;

  width:610px;

  }

  .line {

  border-bottom:#E4E4E4 1px solid;

  }

  </style>

  <script type="text/javascript" src="./ajax.js"></script>

  <script type="text/javascript">

  function doseo() {

  if(!$('domain').value.match(/^([a-z0-9\-]{1,}\.)?[a-z0-9\-]{2,}\.([a-z0-9\-]{1,}\.)?[a-z0-9]{2,}$/i)){

  alert('哈罗~~~首先,请输入正确的域名 :P ');

  $('domain').value = '';

  $('domain').focus();

  return;

  }

  $('seo_result').innerHTML = ' <img src="./images/loading.gif" width="94" height="15" align="absmiddle" alt="正在加载,请稍候... 如果长时间未响应,请尝试重新查询"/> Loading...';

  $('seo_result').style.display = '';

  var jobs = new Array();

  jobs[0] = "alexa";

  jobs[1] = "pagerank";

  jobs[2] = "google";

  jobs[3] = "baidu";

  jobs[4] = "chinarank";

  jobs[5] = "sogourank";

  jobs[6] = "yahoo";

  jobs[7] = "msn";

  jobs[8] = "sogou";

  jobs[9] = "iask";

  jobs[10] = "so163";

  jobs[11] = "zhongsou";

  jobs[12] = "vnet";

  for (var i = 0; i < jobs.length; i++) {

  if($(jobs[i]+'_check').checked == false) continue;

  makeRequest('job='+jobs[i]+'&domain='+$('domain').value); break;

  }

  }

  function $(ID) {

  return document.getElementById(ID);

  }

  </script>

  </head>

  <body>

  <div class="div line">

  <input type="input" size="18" name="domain" id="domain" value="www.master8.net" style="height:12px;"  onmouseover="this.select()" ondblclick="this.value='';" title="请输入您的网站域名双击鼠标清空输入框"/>

  <input type="radio" name="type" value="alexa" id="alexa_check" />Alexa排名

  <input type="radio" name="type" value="pagerank" id="pagerank_check" checked />PageRank

  <input type="radio" name="type" value="google" id="google_check"/>Google收录

  <input type="radio" name="type" value="baidu" id="baidu_check"/>Baidu收录

  <img src="./images/doseo.gif" width="52" height="18" align="absmiddle" onclick="doseo();" style="cursor:pointer" alt="网站SEO查询"/>

  <img src="./images/moreseo.gif" width="52" height="18" align="absmiddle" onclick="$('seo_more').style.display=$('seo_more').style.display=='none'?'':'none';" style="cursor:pointer" alt="更多SEO查询"/>

  </div>

  <div class="div line" style="display:none" id="seo_more">

  <input type="radio" name="type" value="chinarank" id="chinarank_check" />ChinaRank排名

  <input type="radio" name="type" value="sogourank" id="sogourank_check" />搜狗Rank

  <input type="radio" name="type" value="yahoo" id="yahoo_check"/>Yahoo

  <input type="radio" name="type" value="msn" id="msn_check"/>MSN

  <input type="radio" name="type" value="sogou" id="sogou_check"/>搜狗

  <input type="radio" name="type" value="iask" id="iask_check"/>新浪

  <input type="radio" name="type" value="so163" id="so163_check"/>网易

  <input type="radio" name="type" value="zhongsou" id="zhongsou_check"/>中搜

  <input type="radio" name="type" value="vnet" id="vnet_check"/>电信114

  </div>

  <div class="div line" style="display:none" id="seo_result">

  </div>

  <div class="div" style="font-size:9px;text-align:right;">

  <a href="http://www.master8.net" target="_blank">Powered By Master8.NET</a> </div>

  </body>

  </html>

  本地下载