Même si l’intérêt du PageRank de Google est de plus en plus remis en cause par les professionnels du référencement naturel, il reste néanmoins intéressant de pouvoir le connaitre en interrogeant toolbarqueries.google.com. Pour ce faire, la meilleurs des solution est d’utiliser la fonction google_pagerank proposé par Seebz qui permet d’obtenir en Php le PageRank d’une url. Simple et efficace, que demander de plus ?
<?phpfunction google_pagerank($url, $server = ‘toolbarqueries.google.com’)
{
// Usefulls functions
$fStrToNum = create_function(‘$str, $check, $magic’,
‘
$int32Unit = 4294967296; // 2^32
$length = strlen($str);
for ($i = 0; $i < $length; $i++){ $check *= $magic; if ($check >= $int32Unit){
$check = ($check – $int32Unit * (int) ($check / $int32Unit));
$check = ($check < -2147483648) ? ($check + $int32Unit) : $check; } $check += ord($str{$i}); } return $check; '); $fHashURL = create_function('$str', ' $fStrToNum = "'.$fStrToNum.'"; $check1 = $fStrToNum($str, 0x1505, 0x21); $check2 = $fStrToNum($str, 0, 0x1003F); $check1 >>= 2;
$check1 = (($check1 >> 4) & 0x3FFFFC0 ) | ($check1 & 0x3F);
$check1 = (($check1 >> 4) & 0x3FFC00 ) | ($check1 & 0x3FF);
$check1 = (($check1 >> 4) & 0x3C000 ) | ($check1 & 0x3FFF);
$t1 = (((($check1 & 0x3C0) << 4) | ($check1 & 0x3C)) <<2 ) | ($check2 & 0xF0F ); $t2 = (((($check1 & 0xFFFFC000) << 4) | ($check1 & 0x3C00)) << 0xA) | ($check2 & 0xF0F0000 ); return ($t1 | $t2); '); $fCheckHash = create_function('$hashNum', ' $checkByte = 0; $flag = 0; $hashStr = sprintf("%u", $hashNum) ; $length = strlen($hashStr); for ($i = $length-1; $i >= 0; $i–){
$re = $hashStr{$i};
if (1 === ($flag % 2)){
$re += $re;
$re = (int)($re / 10) + ($re % 10);
}
$checkByte += $re;
$flag ++;
}
$checkByte %= 10;
if (0 !== $checkByte){
$checkByte = 10 – $checkByte;
if (1 === ($flag % 2) ){
if (1 === ($checkByte % 2)){
$checkByte += 9;
}
$checkByte >>= 1;
}
}return « 7 » . $checkByte . $hashStr;
‘);// Checksum calcul
$checksum = $fCheckHash($fHashURL($url));// Google request
$requestUrl = sprintf(
‘http://%s/search?client=navclient-auto&ch=%s&ie=UTF-8&oe=UTF-8&features=Rank&q=info:%s’,
$server,
$checksum,
urlencode($url)
);if ( ($c = @file_get_contents($requestUrl)) === false )
return false;
elseif( empty($c) )
return -1;
else
return intval(substr($c, strrpos($c, ‘:’)+1));
}?>
Pour appeler cette fonction de calcul du Page Rank, il suffit d’ajouter ceci à la fin de votre fichier :
<?php
$url = « http://php.net/ »;
$pr = google_pagerank($url);if($pr === false) {
echo « Erreur »;
} elseif($pr == -1) {
echo « N/A »;
} else {
echo $pr;
}?>
Il me sort une erreur à la ligne 12 chez moi, il fonctionne de ton côté ?
Parse error: syntax error, unexpected ‘.’, expecting ‘)’ in pagerank.php on line 12
Essaye de le prendre directement ici : http://code.seebz.net/p/google-pagerank/. Il y a peut être un caractère qui est mal passé dans mon post, puisque que je l’ai testé et qu’il fonctionne bien chez moi.
Bonjour,
Peux tu expliquer où intégrer ces lignes de php pour pouvoir utiliser la fonction?
On ne peux le faire que sur un site auquel on a l’accés serveur?
Ou cela permet de connaitre le PR d une page d’un site que lon visite? Si oui, comment?
Quelle diff avec la googletoolbar?
Merci d’avance de méclairer! 🙂
Contrairement à la googletoolbar, ce script ne nécessite pas de visiter les pages pour en connaitre le PR. Il permet d’automatiser la récupération du PR de milliers de pages. Tu peux tester ce script sur ton propre poste si tu le souhaites en utilisant wamp ou easyphp.