Heim > php教程 > php手册 > PHP获取PR值的代码

PHP获取PR值的代码

WBOY
Freigeben: 2016-06-13 10:46:06
Original
1069 Leute haben es durchsucht

 

用C#写个软件,不知道谷歌的接口用C#写感觉太麻烦了

于是在csdn下载了一份代码,改成用软件查询的接口。

http://www.xssxss.com/pr.php?url=www.google.com

代码

$url= $_GET['url'];

// 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://toolbarqueries.google.com/tbr?client=navclient-auto&ch=6"

.$ch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".$url;

$pr_str = retrieveURLContent($googlePRUrl,$gettype);

return 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

settype($n,'float');

if ( $n

return $n;

}

else{

$clearbit = '';

for($i=0;$i

$clearbit .= '00';

}

for($i=0;$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

$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

$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

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

( ( myfmod( $ch,13 ) ) & 7 ) );

$prbuf = array();

$prbuf[0] = $ch;

for( $i = 1; $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

for( $bitOrder = $i * 4;

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

+trunkbitForce32bit($url[$k+2]

+trunkbitForce32bit($url[$k+3]

$b += ($url[$k+4] +trunkbitForce32bit($url[$k+5]

+trunkbitForce32bit($url[$k+6]

+trunkbitForce32bit($url[$k+7]

$c += ($url[$k+8] +trunkbitForce32bit($url[$k+9]

+trunkbitForce32bit($url[$k+10]

+trunkbitForce32bit($url[$k+11]

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

case 10:

$c+=trunkbitForce32bit($url[$k+9]

case 9 :

$c+=trunkbitForce32bit($url[$k+8]

case 8 :

$b+=trunkbitForce32bit($url[$k+7]

case 7 :

$b+=trunkbitForce32bit($url[$k+6]

case 6 :

$b+=trunkbitForce32bit($url[$k+5]

case 5 :

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

case 4 :

$a+=trunkbitForce32bit($url[$k+3]

case 3 :

$a+=trunkbitForce32bit($url[$k+2]

case 2 :

$a+=trunkbitForce32bit($url[$k+1]

case 1 :

$a+=trunkbitForce32bit($url[$k+0]);

}

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

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

if( $mixo[2]

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;

}

// return url page content or false if failed.

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;

} www.2cto.com

$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.0\r\n"

."Host: ".$host."\r\n"

."Accept: */*\r\n"

."User-Agent: ZealGet\r\n"

."\r\n";

$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,"\r\n\r\n");

if (is_bool($headerend))

{

return $result;

}

else{

return substr($result,$headerend+4);

}

}

 

echo getPR($url);

?>

 

 

摘自Shine的圣天堂-〃敏〃

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage