Unstoppable Domains

PHP5 class to get Google PageRank

Spaceship Spaceship
Watch
This PHP5 class computes the Google PR for any URL. Source code is available online and this is the PHP5 version, can be plugged into any application/software.

PHP:
<?php
/** source available online in public domain
* @author Son Nguyen
* @since 3/30/2006
* @package Framework
* @subpackage WebServices
*/
class CGooglePR {
  /** constructor */
  function __construct() {
  }

  function getRank($pURL) {
    $pURL = 'info:'.$pURL;
    $ch = $this->GoogleCH($this->strord($pURL));
    $vFile = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=".$pURL;
    $data = file($vFile);
    $rankarray = explode (':', $data[2]);
    $rank = $rankarray[2];
    return intval($rank);
  }

  /** unsigned shift right */
  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);
    } // fi
    return $a;
  }

  function mix($a,$b,$c) {
    $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,13));
    $b -= $c; $b -= $a; $b ^= ($a<<8);
    $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,13));
    $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,12));
    $b -= $c; $b -= $a; $b ^= ($a<<16);
    $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,5));
    $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,3));   
    $b -= $c; $b -= $a; $b ^= ($a<<10);
    $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,15));
    return array($a,$b,$c);
  }

  /** converts a string into an array of integers containing the numeric value of the char */
  function strord($pStr) {
    $vResult = array();
    for($i=0;$i<strlen($pStr);$i++) {
      $vResult[$i] = ord($pStr{$i});
      } // rof
    return $vResult;
  }

  function GoogleCH($url,$length=null,$init=0xE6359A60) {
    if(is_null($length)) {
      $length = sizeof($url);
    } // fi

    $a = $b = 0x9E3779B9;
    $c = $init;
    $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 = $this->mix($a,$b,$c);
      $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
      $k += 12;
      $len -= 12;
    } // rof

    $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]);
      /* case 0: nothing left to add */
    } // esac

    $mix = $this->mix($a,$b,$c);
    return $mix[2];
  }
}
?>
 
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
AfternicAfternic
i couldnt get this class to work :td:
 
0
•••
Amnezia said:
i couldnt get this class to work :td:
What version of PHP is installed on your server? The class won't work if it is 4 or lesser than that as suggeseted by the title. And did you get any parsing error message?
 
0
•••
Appraise.net
Unstoppable Domains
Domain Recover
DomainEasy โ€” Live Options
  • The sidebar remains visible by scrolling at a speed relative to the pageโ€™s height.
Back