Php版的google pr值查询接口

PR(全称PageRank)是Google衡量一个网站的重要标准之一,从而影响Google搜索结果排名。Google官方提供了查询PR的API,如本站PR值:
http://toolbarqueries.google.com.hk/tbr?client=navclient-auto&features=Rank:&q=info:phpddt.com&ch=8fabc62ea
Google PR值查询原理及其简单,只要获取如上接口返回的值处理下就OK了:

PHP代码
  1. <?php  
  2.    
  3. /* 
  4. *功能:对URL进行编码 
  5. *参数说明:$web_url 网站URL,不包含"http://" 
  6. */  
  7. function HashURL($url)  
  8. {     
  9.     $SEED = "Mining PageRank is AGAINST GOOGLE’S TERMS OF SERVICE. Yes, I’m talking to you, scammer.";  
  10.     $Result = 0x01020345;  
  11.     for ($i=0; $i<strlen($url); $i++)   
  12.     {  
  13.         $Result ^= ord($SEED{$i%87}) ^ ord($url{$i});  
  14.         $Result = (($Result >> 23) & 0x1FF) | $Result << 9;  
  15.     }  
  16.     return sprintf("8%x"$Result);  
  17. }  
  18.    
  19. /* 
  20. *功能:根据google提供的pr查询接口获取pagerank 
  21. *参数说明:$domain 网站域名,不包含"http://" 
  22. */  
  23. function pagerank($domain)  
  24. {      
  25.     $StartURL = "http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank:&q=info:";  
  26.     $GoogleURL = $StartURL.$domain'&ch='.HashURL($domain);  
  27.     echo $GoogleURL.'<br>';  
  28.     $fcontents = file_get_contents("$GoogleURL");  
  29.     $pagerank = substr($fcontents,9);  
  30.     if (!$pagerankreturn "0";else return $pagerank;  
  31. }  
  32. echo pagerank("phpddt.com");  
  33. ?>  

值得注意的是该接口需要获取一个ch的值,已有HashURL()解决,但是该代码传到服务器Linux 64上出现了int overflow溢出问题,可用如下代码解决:

PHP代码
  1. function trunkbitForce32bit($n) {  
  2.     if (PHP_INT_SIZE <= 4) {  
  3.         settype($n'float');  
  4.         if ($n < 0)  
  5.             $n += 4294967296;  
  6.         return $n;  
  7.     }  
  8.     else   
  9.         {  
  10.         $clearbit = '';  
  11.         for ($i = 0; $i < PHP_INT_SIZE - 4; $i++) {  
  12.             $clearbit .= '00';  
  13.         }  
  14.         for ($i = 0; $i < 4; $i++) {  
  15.             $clearbit .= 'ff';  
  16.         }  
  17.         return ($n & hexdec($clearbit));  
  18.     }  
  19. }  


上一篇: SQL字符串处理函数大全
下一篇: vb键盘常量
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2143
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑