Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Google PageRank mit PHP Script ermitteln

Hier ist ein Script mit dem ihr früher den Google PageRank abfragen konntet.

(der aber leider net mehr funktioniert!)

Ihr könnt das Script auch mit unterschiedlichen Datenzentren abfragen. Dazu könnt ihr optional die IP Adresse des DCs übergeben.

Z.B. so

getPR('http://www.coder-wiki.de', '64.233.187.99');
pagerank.php
  1. <?php
  2. $url = "http://www.coder-wiki.de";
  3. echo $url. 'hat einen PageRank von '.getPR($url);
  4.  
  5. /*
  6. Ab hier muss nichts mehr geändert werden
  7. *********************************************
  8. */
  9. define('GMAG', 0xE6359A60);
  10.  
  11. function zeroFill($a, $b)
  12. {
  13.     $z = hexdec(80000000);
  14.         if ($z & $a)
  15.         {
  16.             $a = ($a>>1);     $a &= (~$z);
  17.             $a |= 0x40000000;
  18.             $a = ($a>>($b-1));
  19.         }
  20.         else
  21.         {        $a = ($a>>$b);
  22.         }
  23.         return $a;
  24. }
  25.  
  26.  
  27. function mix($a,$b,$c) {
  28.   $a -= $b; $a-= $c; $a ^= (zeroFill($c,13));
  29.   $b -= $c; $b -= $a; $b ^= ($a<<8);$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  30.   $a -= $b; $a -= $c;$a ^= (zeroFill($c,12));$b -=$c; $b -= $a; $b ^= ($a<<16);
  31.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  32.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
  33.   $b -= $c; $b -= $a; $b ^= ($a<<10);
  34.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  35.  
  36.   return array($a,$b,$c);
  37. }
  38.  
  39. function GCH($url, $length=null, $init=GMAG) {
  40.     if(is_null($length)) {
  41.         $length = sizeof($url);
  42.     }
  43.     $a = $b = 0x9E3779B9;
  44.     $c = $init;
  45.     $k = 0;
  46.     $len = $length;
  47.     while($len >= 12) {
  48.         $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
  49.         $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
  50.         $c+= ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
  51.         $mix = mix($a,$b,$c);
  52.         $a =$mix[0]; $b = $mix[1]; $c = $mix[2];
  53.         $k += 12;
  54.         $len -= 12;
  55.     }
  56.  
  57.     $c += $length;
  58.     switch($len)
  59.     { case 11: $c+=($url[$k+10]<<24);
  60.         case 10: $c+=($url[$k+9]<<16);
  61.         case 9 :$c+=($url[$k+8]<<8);case 8 : $b+=($url[$k+7]<<24);
  62.         case 7 : $b+=($url[$k+6]<<16);
  63.         case 6 : $b+=($url[$k+5]<<8);
  64.         case 5 : $b+=($url[$k+4]);
  65.         case 4 : $a+=($url[$k+3]<<24);
  66.         case 3 : $a+=($url[$k+2]<<16);
  67.         case 2 : $a+=($url[$k+1]<<8);
  68.         case 1 : $a+=($url[$k+0]);
  69.     }
  70.     $mix = mix($a,$b,$c);
  71.     return $mix[2];
  72. }
  73.  
  74. function strord($string) {
  75.     for($i=0;$i<strlen($string);$i++) {
  76.         $result[$i] = ord($string{$i});
  77.     }
  78.     return $result;}
  79.  
  80. function getPR($_url, $dc="www.google.com") {
  81.     $url = 'info:'.$_url;
  82.     $ch = GCH(strord($url));
  83.     $url='info:'.urlencode($_url);
  84.     $pr = file("http://$dc/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
  85.     $pr_str = implode("", $pr);
  86.     return substr($pr_str,strrpos($pr_str, ":")+1);
  87. }
  88. ?>
Zuletzt geändert am 25.06.2007 12:54 Uhr
  Impressum