• web
  • geek
  • SEO
  • thug
  • clips
  • wordpress
  • développement

Fonction de calcul du PageRank en Php

Posté le 9 août 2010 dans web
Faites tourner !

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

?>

Related Posts

  • Combien coûte une colocation à Paris ?

  • informatique

    Les meilleurs bons plans pour l’achat de matériel informatique

  • infographie chaine site web

    La chaîne de production d’un site web [infographie]

4 Comments on "Fonction de calcul du PageRank en Php"

  1. Crunch says: 9 août 2010 à 18 h 34 min ·

    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

    • admin says: 9 août 2010 à 19 h 27 min ·

      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.

  2. Bjr says: 15 août 2010 à 12 h 29 min ·

    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 says: 15 août 2010 à 13 h 50 min ·

      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 now closed for this article.

Twitter Facebook Google Plus Contact RSS

Étiquettes

argent arnaque astuce black hat blog Booba buzz cinéma clip concours design dj drogue développement facebook film forum geek google graffiti high tech hip-hop html internet jeu jeu vidéo lost musique paris photo prison rap rap français rap us référencement naturel seo spam sport série twitter téléchargement vidéo web wordpress éléctro

Blogoliste

  • Culture graphique
  • Erreur 444
  • Fleur de Menthe
  • Fromages et bon vins
  • Guide de l'argent
  • La main enchantée
  • La poignée dans l'angle

A propos

Thugeek est un webzine dédié aux cultures urbaines, geek et web animé par les 10 doigts de meuhsli, consultant web spécialisé en SEO. Ainsi vous pourrez retrouver des articles traitant de Hip-Hop, du CMS Wordpress, de jeux vidéos ou encore de Twitter.

Si vous souhaitez contribuer à Thugeek.com en proposant un article, annoncer dessus pour présenter votre produit ou votre service ou tout simplement partager une remarque au sujet du site, envoyez un email à : contact-AT-thugeek-DOT-com.

En temps réél

Tweets de @Thugeek

Commentaires récents

  • Hugo dans Les musiques les plus écoutées par arrondissement de Paris
  • Tobogo dans Passenger Shaming, quand votre vol devient un cauchemar
  • Serrurier paris 15 dans Odyssee.io, un jeu pour les experts du web !
  • Meilleuresapplis dans Quels métiers pour demain ?
  • As-T dans Veence Hanao, rap belge
  • Adrien Zone dans Sign spinning, le marketing sportif
  • Abo dans Les 200 paramètres de l’algorithme de Google
  • Visiter le musée Ducati grâce à Google ! | La poignée dans l'angle dans Google street view sur les pistes de ski
  • Flossie : le robot testeur de moto | La poignée dans l'angle dans Les robots du futur
  • guide-dunet dans Ingress : mode d’emploi, astuces et avis

Thugeek.com | Copyright © 2009-2016