php 获取pr,php google pr 值代码

下面的代码是一段获取 google pr值,并且还支持js调用显示哦。

// 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'.%24pr.'.png");';

break;

case 2:

   echo 'document.write("b'.%24pr.'.png");';

break;

case 1:

   echo 'document.write("c'.%24pr.'.png");';

break;

default:

   echo 'document.write("a'.%24pr.'.png");';

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("_","_",'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

$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

$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.jquerycn.cn/pr/pr.php可以查询你网站的pr值并且还可以调用pr在你网站显示哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值