ホームページ  >  記事  >  バックエンド開発  >  PR 値を取得するための PHP コード_PHP チュートリアル

PR 値を取得するための PHP コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:47:17702ブラウズ

ソフトウェアを書くにはC#を使います Googleのインターフェースが分からないのでC#で書くのは面倒に感じます

そこで、csdn からコードをダウンロードして、ソフトウェア クエリ用のインターフェイスに変更しました。

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

コード

$url= $_GET['url'];

// URL取得メソッドマクロ

define('G_PR_GET_TYPE_FILE', 1); // fopen() 関数を使用します

define('G_PR_GET_TYPE_SOCKET', 2); // 標準の fsocketopen 関数を使用します

// 呼び出されるメイン関数

関数 getPR($_url,$gettype=G_PR_GET_TYPE_SOCKET){

$url = '情報:'.$_url;

$ch = GCH(strord($url));

$ch = NewGCH($ch);

$url=str_replace("_","%5F",'info:'.urlencode($_url));

$googlePRRUrl =

"http://toolbarqueries.google.com/tbr?client=navclient-auto&ch=6"

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

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

return substr($pr_str,strrpos($pr_str, ":")+1);

}

//符号なし右シフト

関数 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));

}

他{

$a = ($a>>$b);

}

$a を返します;

}

// 32 ビットを超えるビットを破棄します。

関数trunkbitForce32bit($n){

if(PHP_INT_SIZE

settype($n,'float');

if ( $n

$n を返します;

}

他{

$clearbit = '';

for($i=0;$i

$clearbit .= '00';

}

for($i=0;$i

$clearbit .= 'ff';

}

return ($n & hexdec($clearbit));

}

}

関数 bigxor($m,$n){

//if(function_exists('gmp_init')){

// 戻り値 floatval(gmp_strval(gmp_xor($m,$n)));

//}

//その他{

$m ^ $n;

を返します

//}

}

関数 mix($a,$b,$c){

$a = トランクビットフォース32ビット($a);

$b = トランクビットフォース32ビット($b);

$c = トランクビットフォース32ビット($c);

$a -= $b; $a = トランクビットフォース32ビット($a);

$a -= $c; $a = トランクビットフォース32ビット($a);

$a = bigxor($a,(zeroFill($c,13))); $a = trainbitForce32bit($a);

$b -= $c; $b = トランクビットフォース32ビット($b);

$b -= $a; $b = トランクビットフォース32ビット($b);

$b = bigxor($b,trunkbitForce32bit($a

$c -= $a; $c = トランクビットフォース32ビット($c);

$c -= $b; $c = トランクビットフォース32ビット($c);

$c = bigxor($c,(zeroFill($b,13))); $c = trainbitForce32bit($c);

$a -= $b;$a = トランクビットフォース32ビット($a);

$a -= $c;$a = トランクビットフォース32ビット($a);

$a = bigxor($a,(zeroFill($c,12)));$a = trainbitForce32bit($a);

$b -= $c;$b = トランクビットフォース32ビット($b);

$b -= $a;$b = トランクビットフォース32ビット($b);

$b = bigxor($b,trunkbitForce32bit($a

$c -= $a; $c = トランクビットフォース32ビット($c);

$c -= $b; $c = トランクビットフォース32ビット($c);

$c = bigxor($c,(zeroFill($b,5))); $c = trainbitForce32bit($c);

$a -= $b;$a = トランクビットフォース32ビット($a);

$a -= $c;$a = トランクビットフォース32ビット($a);

$a = bigxor($a,(zeroFill($c,3)));$a = trainbitForce32bit($a);

$b -= $c;$b = トランクビットフォース32ビット($b);

$b -= $a;$b = トランクビットフォース32ビット($b);

$b = bigxor($b,trunkbitForce32bit($a

$c -= $a; $c = トランクビットフォース32ビット($c);

$c -= $b; $c = トランクビットフォース32ビット($c);

$c = bigxor($c,(zeroFill($b,15))); $c = trainbitForce32bit($c);

配列を返す($a,$b,$c);

}

関数 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 ) );

$ch を返します;

}

関数 myfmod($x,$y){

$i = フロア( $x / $y );

return ( $x - $i * $y );

}

関数 c32to8bit($arr32){

$arr8 = 配列();

for( $i = 0; $i

for( $bitOrder = $i * 4;

$bitOrder

$arr8[$bitOrder] = $arr32[$i] & 255;

$arr32[$i] = zeroFill( $arr32[$i], 8 );

}

}

$arr8 を返します;

}

関数 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 ) {

ケース 11:

$c += trainbitForce32bit($url[$k+10]<<24);

ケース 10:

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

ケース9:

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

ケース8:

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

ケース7:

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

ケース6:

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

ケース5:

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

ケース4:

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

ケース3:

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

ケース2:

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

ケース1:

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

}

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

$mixo[2] = トランクビットフォース32ビット($mixo[2]);

if( $mixo[2]

戻ります(

hexdec('1'.

爆破('',

)

array_fill(0,PHP_INT_SIZE*2,'0')))

+ $mixo[2] );

}

他{

$mixo[2] を返します;

}

}

// 文字列を整数の配列に変換します

// char の数値が含まれます

関数 strord($string){

for($i=0;$i

$result[$i] = ord($string{$i});

}

$result を返します;

}

// URL ページのコンテンツを返すか、失敗した場合は false を返します。

関数retrieveURLContent($url,$gettype){

スイッチ($gettype){

ケース G_PR_GET_TYPE_FILE:

returnretrieveURLContentByFile($url);

休憩;

デフォルト:

returnretrieveURLContentBySocket($url);

休憩;

}

}

関数retrieveURLContentByFile($url){

$fd = @fopen($url,"r");

if(!$fd){

false を返します;

www.2cto.com

$result = "";

while($buffer = fgets($fd, 4096)) {

$result .= $buffer;

}

fclose($fd);

$result を返します;

}

関数retrieveURLContentBySocket($url,

$host="",

$ポート=80,

$タイムアウト=30){

if($host == ""){

if(!($pos = strpos($url,'://'))){

false を返します;

}

$host = substr( $url,

$pos+3,

strpos($url,'/',$pos+3) - $pos - 3);

$uri = substr($url,strpos($url,'/',$pos+3));

}

他{

$uri = $url;

}

$request = "GET ".$uri." HTTP/1.0rn"

."ホスト: ".$host."rn"

.「受け入れる: */*rn」

.「ユーザーエージェント: ZealGetrn」

."rn";

$sHnd = @fsockopen ($host、$port、$errno、$errstr、$timeout);

if(!$sHnd){

false を返します;

}

@fputs ($sHnd, $request);

// ソースを取得します

$result = "";

その間 (!feof($sHnd)){

$result .= fgets($sHnd,4096);

}

fclose($sHnd);

$headerend = strpos($result,"rnrn");

if (is_bool($headerend))

{

$result を返します;

}

他{

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

}

}

 

エコー getPR($url);

?>

 

 

摘自Shine的圣天堂-〃敏〃

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478515.html技術記事 C# を使用してソフトウェアを作成する Google のインターフェイスを C# で書くのは面倒だとは知らなかったので、csdn からコードをダウンロードしてソフトウェア クエリ インターフェイスに変更しました。 http://www.xssxss.com/pr.php?url=www.g...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。