广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    获得Google PR值的PHP代码

    2018-10-18 20:39:04 次阅读 稿源:互联网
    零七广告
    今天更新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);
    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 GoogleCH($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)
    {
    case 11: $c+=($url[$k+10]<<24);
    case 10: $c+=($url[$k+9]<<16);
    case 9 : $c+=($url[$k+8]<<8);
    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]);
    }
    $mix = mix($a,$b,$c);
    return $mix[2];
    }

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

    function ReadPR($link)
    {
    $fp = fsockopen ("www.google.com", 80, $errno, $errstr, 30);

    if (!$fp)
    {
    echo "$errstr ($errno)/n";
    exit(1);
    }
    else
    {
    $out = "GET $link HTTP/1.0/r/n";
    $out .= "Host: toolbarqueries.google.com/r/n";
    $out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114.9-big; Linux 2.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;
    }
    }

    function GetPR($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>Google PR值查询</title>
    <body>Google PR值查询 <a href='pr.phps' >获取源代码</a>

    <form action='' method='post'><br />
    URL:<input name='url' value='http://' type='text' size=40>
    <input name='submit' type='submit' value='Get PR'>
    </form></body></html>

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告