View Single Post
Old 10-15-2006, 09:27 PM  
gon
Registered User
 
Join Date: Aug 2005
Posts: 55
Tempest you are right

Quote:
Originally Posted by Tempest View Post
Never mind.. you're not.. with the correct ch value the url you posted works.
OK, Tempest, I believe that you are right, I've been looking for and I have found that many servers don't calculate the right value for $ch, in my local server it works fine, but when I upload to my server it crash. My economy is weak, but I can pay $15 (paypal) for who changes me the code so that works in my server, I paste the code bellow:

PHP Code:
<?php

define
('GMAG'0xE6359A60);

//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);
        }
        return 
$a;



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

function 
GCH($url$length=null$init=GMAG) {
    if(
is_null($length)) {
        
$length sizeof($url);
    }
    
$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 mix($a,$b,$c);
        
$a $mix[0]; $b $mix[1]; $c $mix[2];
        
$k += 12
        
$len -= 12;
    }

    
$c += $length;
    switch(
$len)              /* all the case statements fall through */
    
{
        case 
11$c+=($url[$k+10]<<24);
        case 
10$c+=($url[$k+9]<<16);
        case 
$c+=($url[$k+8]<<8);
          
/* the first byte of c is reserved for the length */
        
case $b+=($url[$k+7]<<24);
        case 
$b+=($url[$k+6]<<16);
        case 
$b+=($url[$k+5]<<8);
        case 
$b+=($url[$k+4]);
        case 
$a+=($url[$k+3]<<24);
        case 
$a+=($url[$k+2]<<16);
        case 
$a+=($url[$k+1]<<8);
        case 
$a+=($url[$k+0]);
         
/* case 0: nothing left to add */
    
}
    
$mix mix($a,$b,$c);
    
/*-------------------------------------------- report the result */
    
return $mix[2];
}

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

function 
getPR($_url) {
    
$url 'info:'.$_url;
    
$ch GCH(strord($url));
    
$url='info:'.urlencode($_url);

    
$pr file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
    
$pr_str implode(""$pr);
    return 
substr($pr_str,strrpos($pr_str":")+1);
}


//echo "PageRank: ".getPR("http://www.example.com");

?>
__________________
gon is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote