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

PHP获取PR值的代码

Jun 13, 2016 am 10:46 AM
php Vers le bas 代码 Écrire 接口 utiliser de 获取 谷歌 软件

 

用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的圣天堂-〃敏〃

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment commenter Deepseek Comment commenter Deepseek Feb 19, 2025 pm 05:42 PM

Deepseek est un puissant outil de récupération d'informations. .

Comment rechercher Deepseek Comment rechercher Deepseek Feb 19, 2025 pm 05:39 PM

Deepseek est un moteur de recherche propriétaire qui ne recherche que dans une base de données ou un système spécifique, plus rapide et plus précis. Lorsque vous l'utilisez, il est conseillé aux utilisateurs de lire le document, d'essayer différentes stratégies de recherche, de demander de l'aide et des commentaires sur l'expérience utilisateur afin de tirer le meilleur parti de leurs avantages.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Sesame Open Door Exchange Page d'enregistrement de page Enregistrement Gate Trading App The Registration Site Web Sesame Open Door Exchange Page d'enregistrement de page Enregistrement Gate Trading App The Registration Site Web Feb 28, 2025 am 11:06 AM

Cet article présente le processus d'enregistrement de la version Web de Sesame Open Exchange (GATE.IO) et l'application Gate Trading en détail. Qu'il s'agisse de l'enregistrement Web ou de l'enregistrement de l'application, vous devez visiter le site Web officiel ou l'App Store pour télécharger l'application authentique, puis remplir le nom d'utilisateur, le mot de passe, l'e-mail, le numéro de téléphone mobile et d'autres informations et terminer la vérification des e-mails ou du téléphone mobile.

Pourquoi le lien d'échange de Bybit ne peut-il pas être téléchargé directement et installé? Pourquoi le lien d'échange de Bybit ne peut-il pas être téléchargé directement et installé? Feb 21, 2025 pm 10:57 PM

Pourquoi le lien d'échange de Bybit ne peut-il pas être téléchargé directement et installé? Bybit est un échange de crypto-monnaie qui fournit des services de trading aux utilisateurs. Les applications mobiles de l'échange ne peuvent pas être téléchargées directement via AppStore ou GooglePlay pour les raisons suivantes: 1. La politique de l'App Store empêche Apple et Google d'avoir des exigences strictes sur les types d'applications autorisées dans l'App Store. Les demandes d'échange de crypto-monnaie ne répondent souvent pas à ces exigences car elles impliquent des services financiers et nécessitent des réglementations et des normes de sécurité spécifiques. 2. Conformité des lois et réglementations Dans de nombreux pays, les activités liées aux transactions de crypto-monnaie sont réglementées ou restreintes. Pour se conformer à ces réglementations, l'application ByBit ne peut être utilisée que via des sites Web officiels ou d'autres canaux autorisés

Sesame Open Door Trading Platform Download Version mobile Gateio Trading Plateforme de téléchargement Adresse de téléchargement Sesame Open Door Trading Platform Download Version mobile Gateio Trading Plateforme de téléchargement Adresse de téléchargement Feb 28, 2025 am 10:51 AM

Il est crucial de choisir un canal formel pour télécharger l'application et d'assurer la sécurité de votre compte.

portail d'enregistrement officiel de Gate.io Exchange portail d'enregistrement officiel de Gate.io Exchange Feb 20, 2025 pm 04:27 PM

Gate.io est un échange de crypto-monnaie de premier plan qui offre une large gamme d'actifs cryptographiques et de paires de trading. Enregistrer Gate.io est très simple. Complétez l'inscription. Avec Gate.io, les utilisateurs peuvent profiter d'une expérience de trading de crypto-monnaie sûre et pratique.

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

See all articles