Pr ohne Toolbar
Hier ein kleiner Codeschnipsel um den PR
einer Website ohne Toolbar die Google Toolbar zu berechnen. Das Script
dient der Demonstration, wie der PR ohne die Verwendung der Toolbar
abgefragt werden kann. Der Einsatz des Scripts ohne die Genehmigung von
Google verstößt gegen deren Dienstleitungsbedingungen.
|
Script: |
<?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 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 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 "Der PR Ihrer
Seite ist: ".getPR("http://www.beispiel.de");
?>
|
|