手机
当前位置:查字典教程网 >编程开发 >php教程 >获得Google PR值的PHP代码
获得Google PR值的PHP代码
摘要:今天更新blog程序后,突然发现google工具条上的PR条增加了一点,不过一直以来Google工具条上的PR因为缓冲问题,使得当前显示的P...

今天更新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|=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("www.google.com",80,$errno,$errstr,30);

if(!$fp)

{

echo"$errstr($errno)n";

exit(1);

}

else

{

$out="GET$linkHTTP/1.0rn";

$out.="Host:toolbarqueries.google.comrn";

$out.="User-Agent:Mozilla/4.0(compatible;GoogleToolbar2.0.114.9-big;Linux2.6)rn";

$out.="Connection:Closernrn";

fwrite($fp,$out);

do{

$line=fgets($fp,128);

}while($line!=="rn");

$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>

【获得Google PR值的PHP代码】相关文章:

如何在HTML中嵌入PHP 代码

写一段简单的PHP建立文件夹代码

10个提供免费PHP脚本下载的网站

我的论坛源代码(九)

我的论坛源代码(五)

我的论坛源代码(七)

用PHP代码在网页上生成图片

常用PHP框架功能对比表

我的论坛源代码(四)

用PHP代码给图片加水印

精品推荐
分类导航