PageRank revised

Como habreis podido observar, en el menú de la derecha, encima del calendario, os muestro el PageRank de mi weblog... ¡sin necesidad de tener la ToolBar de Google!

¿Y qué significa eso? Pues que utilizo un código PHP, junto con SSI para calcularlo y mostrároslo.

¿Quereis ver el código?

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 9 : $c+=($url[$k+8]<<8);

// the first byte of c is reserved for the length

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

}

$mix = mix($a,$b,$c);

// report the result

return $mix[2];

}



//converts a string into an array of integers (the numeric

//value of the char)

function strord($string){

for($i=0;$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 "Mi PR es: ".getPR("http://www.albertlg.com/blog/")."";

?>

Albert López
Albert López
Head of Content & SEO

Responsible for the Content area and Search Engine Optimization at Drinks&Co Marketplace (formerly Uvinum), and one of its 3 co-founders together with Nico Bour and Albert Garcia, with more than 20 years of experience in internet business. For more than 10 years he has focused his professional career in the Wine and Spirits sector, turning a personal passion into a professional one.

comments powered by Disqus

Related