Home >Backend Development >PHP Tutorial >页面中嵌入google的pagerank显示_PHP

页面中嵌入google的pagerank显示_PHP

WBOY
WBOYOriginal
2016-06-01 12:34:221113browse

Google

代码如下:

  1. /**
  2. * blog.hd001.com Google PageRank Generator
  3. *
  4. *
  5. * @link:    http://blog.hd001.com
  6. * @author:  Pasio & superspice
  7. * @version: 0.1
  8. */
  9. @error_reporting(E_ALL ^ E_NOTICE);
  10. define('GOOGLE_MAGIC', 0xE6359A60);
  11. //unsigned shift right
  12. function zeroFill($a, $b)
  13. {
  14.     $z = hexdec(80000000);
  15.         if ($z & $a)
  16.         {
  17.             $a = ($a>>1);
  18.             $a &= (~$z);
  19.             $a |= 0x40000000;
  20.             $a = ($a>>($b-1));
  21.         }
  22.         else
  23.         {
  24.             $a = ($a>>$b);
  25.         }
  26.         return $a;
  27. }   
  28.    
  29.    
  30. function mix($a,$b,$c) {
  31.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));   
  32.   $b -= $c; $b -= $a; $b ^= ($a8);   
  33.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  34.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  35.   $b -= $c; $b -= $a; $b ^= ($a16);
  36.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));   
  37.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));    
  38.   $b -= $c; $b -= $a; $b ^= ($a10);   
  39.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  40.     
  41.   return array($a,$b,$c);
  42. }
  43.    
  44. function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
  45.     if(is_null($length)) {
  46.         $length = sizeof($url);
  47.     }
  48.     $a = $b = 0x9E3779B9;
  49.     $c = $init;
  50.     $k = 0;
  51.     $len = $length;
  52.     while($len >= 12) {
  53.         $a += ($url[$k+0] +($url[$k+1]8) +($url[$k+2]16) +($url[$k+3]24));
  54.         $b += ($url[$k+4] +($url[$k+5]8) +($url[$k+6]16) +($url[$k+7]24));
  55.         $c += ($url[$k+8] +($url[$k+9]8) +($url[$k+10]16)+($url[$k+11]24));
  56.         $mix = mix($a,$b,$c);
  57.         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
  58.         $k += 12;   
  59.         $len -= 12;
  60.     }
  61.    
  62.     $c += $length;
  63.     switch($len)              /* all the case statements fall through */
  64.     {
  65.         case 11: $c+=($url[$k+10]24);
  66.         case 10: $c+=($url[$k+9]16);
  67.         case 9 : $c+=($url[$k+8]8);
  68.           /* the first byte of c is reserved for the length */
  69.         case 8 : $b+=($url[$k+7]24);
  70.         case 7 : $b+=($url[$k+6]16);
  71.         case 6 : $b+=($url[$k+5]8);
  72.         case 5 : $b+=($url[$k+4]);
  73.         case 4 : $a+=($url[$k+3]24);
  74.         case 3 : $a+=($url[$k+2]16);
  75.         case 2 : $a+=($url[$k+1]8);
  76.         case 1 : $a+=($url[$k+0]);
  77.          /* case 0: nothing left to add */
  78.     }
  79.     $mix = mix($a,$b,$c);
  80.     /*-------------------------------------------- report the result */
  81.     return $mix[2];
  82. }
  83.    
  84. //converts a string into an array of integers containing the numeric value of the char
  85. function strord($string) {
  86.     for($i=0;$istrlen($string);$i++) {
  87.         $result[$i] = ord($string{$i});
  88.     }
  89.     return $result;
  90. }
  91. // http://www.example.com/ - Checksum: 6540747202
  92. if (!isset($_GET['url']))
  93. {
  94.     $url_o   = $_SERVER['HTTP_REFERER'];
  95. }
  96. else
  97. {
  98.     $url_o   = $_GET['url'];
  99. }
  100. $url_o = explode("?", $url_o);
  101. $url_o = $url_o[0];
  102. $url    = 'info:'.$url_o;
  103. $ch     = GoogleCH(strord($url));
  104. $url    ='info:'.urlencode($url_o);
  105. $cache_filename = "prcache/".urlencode($url_o).".pagerank";
  106. // check exists of cache file, if not exists, create it
  107. if(!file_exists($cache_filename) || (file_exists($cache_filename) && filemtime($cache_filename) time() - 86400))
  108. {
  109.     $url    = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url";
  110.     $result = @file_get_contents($url);
  111.     $tmp    = @explode(":", $result);
  112.     $rank   = intval($tmp[2]);
  113.     $handle = fopen ($cache_filename, "w");
  114.     flock($handle, LOCK_EX);
  115.     fwrite($handle, $rank);
  116.     flock($handle, LOCK_UN);
  117.     fclose($handle);
  118. }
  119. $pagerank = @file_get_contents($cache_filename);
  120. $pagerank = 2;
  121. $width = 6 * $pagerank;
  122. $width_ = 6 * (10-$pagerank);
  123. echo "document.writeln('\"80\" border=0 cellpadding=\"0\" cellspacing=\"0\" style=\"font-size:12px\">
    \"center\">PageRank
    \"80\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\" height=\"10\" style=\"font-size:11px\">\"#FFFFFF\">
    \"62\">页面中嵌入google的pagerank显示_PHP\"/imgs/bar.gif\" width=\"$width\" height=\"20\">页面中嵌入google的pagerank显示_PHP\"/imgs/space.gif\" width=\"$width_\" height=\"20\"> \"center\" style=\"color:red\">$pagerank
    ');"
    ;

以上代码保存为pagerank.php到plugins目录下。
实现步骤
一、放一个bar.gif到imgs文件夹下,为上图中的绿色图片,再放一个space.gif到imgs文件夹下,该图片是一个1*1的空白图。
二、在plugins目录下建立prcache目录,并保证该目录为apache执行用户可读写的。
三、调用方法是:
页面中,在你想要显示pagerank的地方加入如下代码

完毕!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn