PHP5 class to get Google PageRank

SpaceshipSpaceship
Watch

123finder.com

Established Member
Impact
2
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.
Unstoppable Domains — AI StorefrontUnstoppable Domains — AI Storefront
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
•••
Dynadot — .com TransferDynadot — .com Transfer
CatchedCatched

We're social

Escrow.com
Spaceship
Rexus Domain
CryptoExchange.com
Domain Recover
CatchDoms
DomDB
NameFit
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back