获得Google PR值的PHP代码

时间:2021-05-18

今天更新blog程序后,突然发现google工具条上的PR条增加了一点,不过一直以来Google工具条上的PR因为缓冲问题,使得当前显示的PR值并不一定是目前页面的PR值,因此去查了下,发现blog站点(http://mlsx.xplore.cn/)的PR值上升到了3,但是首页(http://mlsx.xplore.cn)还是2。霍霍,庆贺一下。

不过glemir今天上午告诉我他的blog早已经到了3,使我有点嫉妒,连带想起了Rachel的blog,他们更新都没有我勤快,但是他们的PR基本上不必我差。由此我得出两个自我安慰的结论:

1)Rachel的PR和我的一样,是因为他的游记日志受欢迎,我没有他的手笔。

2)glemir的PR升的比我的快,那是因为他用了一个好blog程序--wordpress

哈哈,自嘲一下。

转入正题,贴上获得Google的PR值代码,声明不是我写的,只是修改,checksum的算法暂时还不知道。

演示代码点击这里
复制代码 代码如下:
<?php
define('GOOGLE_MAGIC',0xE6359A60);
functionzeroFill($a,$b)
{
$z=hexdec(80000000);
if($z&$a)
{
$a=($a>>1);
$a&=(~$z);
$a&#124;=0x40000000;
$a=($a>>($b-1));
}
else
{
$a=($a>>$b);
}
return$a;
}

functionmix($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));
returnarray($a,$b,$c);
}

functionGoogleCH($url,$length=null,$init=GOOGLE_MAGIC)
{
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)
{
case11:$c+=($url[$k+10]<<24);
case10:$c+=($url[$k+9]<<16);
case9:$c+=($url[$k+8]<<8);
case8:$b+=($url[$k+7]<<24);
case7:$b+=($url[$k+6]<<16);
case6:$b+=($url[$k+5]<<8);
case5:$b+=($url[$k+4]);
case4:$a+=($url[$k+3]<<24);
case3:$a+=($url[$k+2]<<16);
case2:$a+=($url[$k+1]<<8);
case1:$a+=($url[$k+0]);
}
$mix=mix($a,$b,$c);
return$mix[2];
}

functionstrord($string){
for($i=0;$i<strlen($string);$i++){
$result[$i]=ord($string{$i});
}
return$result;
}

functionReadPR($link)
{
$fp=fsockopen("patible;GoogleToolbar2.0.114.9-big;Linux2.6)\r\n";
$out.="Connection:Close\r\n\r\n";
fwrite($fp,$out);

do{
$line=fgets($fp,128);
}while($line!=="\r\n");
$data=fread($fp,8192);
fclose($fp);
return$data;
}
}

functionGetPR($url)
{
$url='info:'.$url;
$ch=GoogleCH(strord($url));
$data=ReadPR("/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url");
$rankarray=explode(':',$data);
return$rankarray[2];
}

if(isset($_POST['url'])&&$_POST['url']!=='')
{
echo'PageRank:'.GetPR($_POST['url']);
}
?>
<html><title>GooglePR值查询</title>
<body>GooglePR值查询<ahref='pr.phps'>获取源代码</a>

<formaction=''method='post'><br/>
URL:<inputname='url'value='http://'type='text'size=40>
<inputname='submit'type='submit'value='GetPR'>
</form></body></html>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章