View Single Post
Old 04-01-2006, 11:18 PM   · #1
123finder.com
NamePros Member
 
Trader Rating: (0)
Join Date: Mar 2006
Posts: 62
NP$: 0.00 (Donate)
123finder.com is an unknown quantity at this point
PHP5 class to get Google PageRank

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 Code:
<?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];
  }
}
?>


Please register or log-in into NamePros to hide ads
__________________
123finder.com - Browse dictionary domains & 4-9 letter domains
123finder.com is offline   Reply With Quote
Site Sponsors
Grow your forum! domainsubway.com Find out how!
Advertise your business at NamePros
All times are GMT -7. The time now is 09:26 AM.


Powered by: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.