Fonction de calcul du PageRank en Php

fonction pagerankMê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 ?


<?php

function 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;
}

?>

4 Comments

  • 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

  • Bjr

    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! 🙂

    • admin

      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.

Comments are closed.