php google pr 值代码

<?php
// require dirname(__FILE__) . '/MooPHP/MooPHP.php';
 define('GMAG', 0xE6359A60);

//note 获取和处理可能要取得的变量
//$site = MooGetGPC('site', 'string');
$host ='';
$style = isset($_GET['style'])?$_GET['style']:1;
$host = $_SERVER['HTTP_HOST'];
$site = str_replace('http://', '', $host);

if($site) {
 $pr = getPR($site);
 switch( $style )
 {
  case 3:
   echo 'document.write("<a href=http://tool.111cn.net/pr/pr.php title=中国WEB第一站 target=_blank><img src=yun_qi_img/a'.$pr.'.png border=0 /></a>");';
   break;
  case 2:
   echo 'document.write("<a href=http://tool.111cn.net/pr/pr.php title=中国WEB第一站 target=_blank><img src=yun_qi_img/b'.$pr.'.png border=0 /></a>");';
   break;
  case 1:
   
   echo 'document.write("<a href=http://tool.111cn.net/pr/pr.php title=中国WEB第一站 target=_blank><img src=yun_qi_img/c'.$pr.'.png border=0 /></a>");';
   break;
  default:
   echo 'document.write("<a href=http://tool.111cn.net/pr/pr.php title=中国WEB第一站 target=_blank><img src=yun_qi_img/a'.$pr.'.png border=0 /></a>");';
   break;
  }
  
}
else
{
 echo '有问题';
}

// include MooTemplate("pr_index");

//note 处理获得pr值的函数

// url get method macro.
define('G_PR_GET_TYPE_FILE', 1);    // use fopen() function
define('G_PR_GET_TYPE_SOCKET', 2);  // use standard fsocketopen function

// main function to be called
function getPR($_url,$gettype=G_PR_GET_TYPE_SOCKET){
    $url = 'info:'.$_url;
    $ch = GCH(strord($url));
    $ch = NewGCH($ch);
    $url=str_replace("_","%5F",'info:'.urlencode($_url));
    $googlePRUrl =
        "http://64.233.161.104/search?client=navclient-auto&ch=6"
        .$ch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".$url;
    $pr_str = retrieveURLContent($googlePRUrl,$gettype);
    return intval(substr($pr_str,strrpos($pr_str, ":")+1));
}

//unsigned shift right
function zeroFill($a, $b){
    $z = hexdec('8'.implode('',array_fill(0,PHP_INT_SIZE*2-1,'0')));
    if ($z & $a){
        $a = ($a>>1);
        $a &= (~$z);
        $a |= hexdec('4'.implode('',array_fill(0,PHP_INT_SIZE*2-1,'0')));
        $a = ($a>>($b-1));
    }
    else{
        $a = ($a>>$b);
    }
    return $a;
}

// discard bits beyonds 32 bit.
function trunkbitForce32bit($n){
    if(PHP_INT_SIZE <= 4){
        settype($n,'float');
        if ( $n < 0 ) $n += 4294967296;
        return $n;
    }
    else{
        $clearbit = '';
        for($i=0;$i<PHP_INT_SIZE-4;$i++){
            $clearbit .= '00';
        }
        for($i=0;$i<4;$i++){
            $clearbit .= 'ff';
        }
        return ($n & hexdec($clearbit));
    }
}

function bigxor($m,$n){
    //if(function_exists('gmp_init')){
    //  return floatval(gmp_strval(gmp_xor($m,$n)));
    //}
    //else{
        return $m ^ $n;
    //}
}

function mix($a,$b,$c){

    $a = trunkbitForce32bit($a);
    $b = trunkbitForce32bit($b);
    $c = trunkbitForce32bit($c);

    $a -= $b; $a = trunkbitForce32bit($a);
    $a -= $c; $a = trunkbitForce32bit($a);
    $a = bigxor($a,(zeroFill($c,13))); $a = trunkbitForce32bit($a);

    $b -= $c; $b = trunkbitForce32bit($b);
    $b -= $a; $b = trunkbitForce32bit($b);
    $b = bigxor($b,trunkbitForce32bit($a<<8)); $b = trunkbitForce32bit($b);

    $c -= $a; $c = trunkbitForce32bit($c);
    $c -= $b; $c = trunkbitForce32bit($c);
    $c = bigxor($c,(zeroFill($b,13))); $c = trunkbitForce32bit($c);

    $a -= $b;$a = trunkbitForce32bit($a);
    $a -= $c;$a = trunkbitForce32bit($a);
    $a = bigxor($a,(zeroFill($c,12)));$a = trunkbitForce32bit($a);

    $b -= $c;$b = trunkbitForce32bit($b);
    $b -= $a;$b = trunkbitForce32bit($b);
    $b = bigxor($b,trunkbitForce32bit($a<<16));

    $c -= $a; $c = trunkbitForce32bit($c);
    $c -= $b; $c = trunkbitForce32bit($c);
    $c = bigxor($c,(zeroFill($b,5))); $c = trunkbitForce32bit($c);

    $a -= $b;$a = trunkbitForce32bit($a);
    $a -= $c;$a = trunkbitForce32bit($a);
    $a = bigxor($a,(zeroFill($c,3)));$a = trunkbitForce32bit($a);

    $b -= $c;$b = trunkbitForce32bit($b);
    $b -= $a;$b = trunkbitForce32bit($b);
    $b = bigxor($b,trunkbitForce32bit($a<<10));

    $c -= $a; $c = trunkbitForce32bit($c);
    $c -= $b; $c = trunkbitForce32bit($c);
    $c = bigxor($c,(zeroFill($b,15))); $c = trunkbitForce32bit($c);

    return array($a,$b,$c);
}

function NewGCH($ch){
    $ch = ( trunkbitForce32bit( ( $ch / 7 ) << 2 ) |
            ( ( myfmod( $ch,13 ) ) & 7 ) );

    $prbuf = array();
    $prbuf[0] = $ch;
    for( $i = 1; $i < 20; $i++ )
    {
      $prbuf[$i] = $prbuf[$i-1] - 9;
    }

    $ch = GCH( c32to8bit( $prbuf ) );

    return $ch;
}
function myfmod($x,$y){
    $i = floor( $x / $y );
    return ( $x - $i * $y );
}
function c32to8bit($arr32){
    $arr8 = array();

    for( $i = 0; $i < count($arr32); $i++ ) {
        for( $bitOrder = $i * 4;
                $bitOrder <= $i * 4 + 3; $bitOrder++ ) {
        $arr8[$bitOrder] = $arr32[$i] & 255;
        $arr32[$i] = zeroFill( $arr32[$i], 8 );
      }
    }

    return $arr8;
}

function GCH($url, $length=null){
    if(is_null($length)) {
        $length = sizeof($url);
    }
    $init = 0xE6359A60;

    $a = 0x9E3779B9;
    $b = 0x9E3779B9;
    $c = 0xE6359A60;
    $k = 0;
    $len = $length;
    $mixo = array();

    while( $len >= 12 ){
        $a += ($url[$k+0] +trunkbitForce32bit($url[$k+1]<<8)
              +trunkbitForce32bit($url[$k+2]<<16)
              +trunkbitForce32bit($url[$k+3]<<24));
        $b += ($url[$k+4] +trunkbitForce32bit($url[$k+5]<<8)
              +trunkbitForce32bit($url[$k+6]<<16)
              +trunkbitForce32bit($url[$k+7]<<24));
        $c += ($url[$k+8] +trunkbitForce32bit($url[$k+9]<<8)
              +trunkbitForce32bit($url[$k+10]<<16)
              +trunkbitForce32bit($url[$k+11]<<24));
        $mixo = mix($a,$b,$c);
        $a = $mixo[0]; $b = $mixo[1]; $c = $mixo[2];
        $k += 12;
        $len -= 12;
    }

    $c += $length;

    switch( $len ) {
        case 11:
        $c += trunkbitForce32bit($url[$k+10]<<24);

        case 10:
        $c+=trunkbitForce32bit($url[$k+9]<<16);

        case 9 :
        $c+=trunkbitForce32bit($url[$k+8]<<8);

        case 8 :
        $b+=trunkbitForce32bit($url[$k+7]<<24);

        case 7 :
        $b+=trunkbitForce32bit($url[$k+6]<<16);

        case 6 :
        $b+=trunkbitForce32bit($url[$k+5]<<8);

        case 5 :
        $b+=trunkbitForce32bit($url[$k+4]);

        case 4 :
        $a+=trunkbitForce32bit($url[$k+3]<<24);

        case 3 :
        $a+=trunkbitForce32bit($url[$k+2]<<16);

        case 2 :
        $a+=trunkbitForce32bit($url[$k+1]<<8);

        case 1 :
        $a+=trunkbitForce32bit($url[$k+0]);
    }

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

    $mixo[2] = trunkbitForce32bit($mixo[2]);

    if( $mixo[2] < 0 ){
        return (
            hexdec('1'.
                implode('',
                    array_fill(0,PHP_INT_SIZE*2,'0')))
            + $mixo[2] );
    }
    else{
        return $mixo[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 retrieveURLContent($url,$gettype){
    switch($gettype){
        case G_PR_GET_TYPE_FILE:
            return retrieveURLContentByFile($url);
            break;
        default:
            return retrieveURLContentBySocket($url);
            break;
    }
}

function retrieveURLContentByFile($url){
    $fd = @fopen($url,"r");
    if(!$fd){
        return false;
    }
    $result = "";
    while($buffer = fgets($fd, 4096)) {
      $result .= $buffer;
    }
    fclose($fd);
    return $result;
}

function retrieveURLContentBySocket($url,
                                    $host="",
                                    $port=80,
                                    $timeout=30){
    if($host == ""){
        if(!($pos = strpos($url,'://'))){
            return false;
        }
        $host = substr( $url,
                        $pos+3,
                        strpos($url,'/',$pos+3) - $pos - 3);
        $uri = substr($url,strpos($url,'/',$pos+3));
    }
    else{
        $uri = $url;
    }

    $request =  "GET ".$uri." HTTP/1.0rn"
               ."Host: ".$host."rn"
               ."Accept: */*rn"
               ."User-Agent: ZealGetrn"
               ."rn";
    $sHnd = @fsockopen ($host, $port, $errno, $errstr, $timeout);
    if(!$sHnd){
        return false;
    }

    @fputs ($sHnd, $request);

    // Get source
    $result = "";
    while (!feof($sHnd)){
        $result .= fgets($sHnd,4096);
    }
    fclose($sHnd);

    $headerend = strpos($result,"rnrn");
    if (is_bool($headerend))
    {
        return $result;
    }
    else{
        return substr($result,$headerend+4);
    }
}

站长推荐:

http://tool.111cn.net/pr/pr.php可以查询你网站的pr值并且还可以调用pr在你网站显示哦。

时间: 2024-10-11 19:14:36

php google pr 值代码的相关文章

获得Google PR值的PHP代码_php实例

今天更新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基本上

在自己的网页页面上实现Google PR值的显示

google|pr值|网页|显示|页面 Google本身提供了查询指定的url的PageRank值的接口,知道了这个接口,就可以很容易编写脚本在页面上实现这一功能,而无需再依赖google toolbar才能进行查询.本文提供了一个用PHP实现的pr查询接口. 使用很简单,只要在需要的地方 〈?php include_once("./pr.inc.php"); echo getPR($urlToQuery); ?〉 即可显示出指定url的PageRank的数值.知道了这个数值再在其基础

asp google pr查询代码_应用技巧

复制代码 代码如下: <%@LANGUAGE="JAVASCRIPT"%> <title>Google PR值查询 asp程序</title> <% function hexdec(str) { return parseInt(str,16); } function zeroFill(a,b) { var z = hexdec(80000000); if (z & a) { a = a>>1; a &= ~z; a

asp google pr查询代码

复制代码 代码如下: <%@LANGUAGE="JAVASCRIPT"%> <title>Google PR值查询 asp程序</title> <% function hexdec(str) { return parseInt(str,16); } function zeroFill(a,b) { var z = hexdec(80000000); if (z & a) { a = a>>1; a &= ~z; a

Google PR值查询

google|pr值|google|pr值   <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-

提升Google PR值的的八个绝招

虽然现在Google PR值对于许多站长朋友来说,显得不那么重要了,但是在没有替代PR值的新产品出来之前,许多人仍把它作为衡量一个网站seo水平的一个重要指标,一般的,我们认为:一个网站,它的PR值越高,则该网站的搜索排名越靠前,即在相同条件下,PR值高的网站在google搜索结果中具有排名优先权.因此很多站长在想尽不同的招数提高网站的pr值,借以提升网站的权重和seo排名,今天小左为大家讲解有效提升PR值的八招绝招,具体如下: 第一招:广泛寻求高质量的友情链接合作.所谓高质量是指更新频繁,快照

google 网页排名优化与google pr值作用

google 网页排名优化与google pr值作用 网页排名优化,是指迎合搜索引擎的网站排名规则进行网站的规划,网页的设计,以确保网站能在搜索引擎上获得较好的排位,让更多的潜在客户能够很快地找到你,从而求得网络营销效果的最大化.     关键词的使用     我们寻找关键词的目的就是为了要将它们用在网页中.看了前面有关搜索引擎工作原理以及网页排名规则的介绍,你也许还记得搜索引擎是如何对用户的查询作出反应的.它首先以输入的关键词:如红外线测温仪为搜索条件,在其数据库中检索包含该关键词的网页,然后

GOOGLE PR值迟来的更新打破取消PR的说法

中介交易 SEO诊断 淘宝客 云主机 技术大厅 2009年10月30日对于中国的个人站长来说,无疑是个让人感到措手不及的日子!因为这一次的Google PR值更新来的太突然了!在这之前,各个站长都在进行更新日期的预测,都在翘首期待,可没有一个正确的!相信在4月初的时候那些站长查询类的站点每天都被查询PR的站长挤破门槛,我就是其中一员!而这次Google却让人琢磨不透!前段时间,在A5上讨论最热门的话题就是Google取消PR自从上次pr值更新到现在已经快4个月了,如此漫长的时间是GOOGLE P

提高网站的Google PR值的私家绝招

提高网站的Google PR值的私家绝招    Jun 26, 2005 来源:未详         Google之所以受网站管理员和Internet媒体服务公司的欢迎,是由于它并非只使用关键词或代理搜索技术,而是将自身建立在高级的网页级别技术基础之上.别的搜索引擎提供给搜索者的是多种渠道得来的一个粗略的搜索结果,而Google提供给它的搜索者的则是它自己产生的高度精确的搜索结果.这就是为什么网站管理员会千方百计去提高自己网站在Google的排名. Google大受青睐的另一个原因就是它的网站索