Script PHP pour afficher le PageRank d’un site ou d’une page
23 October 2007 | Internet, Programmation
L’extraction du PageRank d’une URL d’un site ou d’une page a été maintes fois implémentée et discutée, cet article n’est donc pas un scoop.
Le code PHP proposé ci-après est simplement une tentative d’optimisation de celui que l’on peut généralement trouver sur le Web, comme par exemple dans l’article Google® PageRank® & CheckSum Algorithm.
Certes on y perd en lisibilité, mais le but avant tout de faciliter la tâche à l’interpréteur PHP pour calculer le pagerank efficacement.
Si vous avez la possibilité de placer du code PHP dans les pages de votre site, vous pouvez utiliser ce script tel quel en le complétant par une série d’images de votre choix, à placer dans un répertoire ‘images’ située au même niveau que ce script.
<?php
define( '_2p32', 4294967296 );
define( '_2p31', 2147483648 );
function str2num( $s, $c, $m)
{
$l = strlen( $s );
for ( $i = 0; $i < $l; $i++ )
{
if (( $c *= $m ) >= _2p32 )
{
$c -= _2p32 * (int) ( $c / _2p32 );
if ( $c < -_2p31 ) $c = ( $c + _2p32 );
}
$c += ord( $s{ $i } );
}
return $c;
}
function hash_url( $s )
{
$a = str2num( $s, 0x1505, 0x21 ) >> 2;
$b = str2num( $s, 0x0, 0x1003F );
$a = $a >> 4 & 0x3FFFFC0 | $a & 0x3F;
$a = $a >> 4 & 0x3FFC00 | $a & 0x3FF;
$a = $a >> 4 & 0x3C000 | $a & 0x3FFF;
return (( $a & 0x3C0 ) << 4 | $a & 0x3C ) << 2 | $b & 0xF0F | (( $a & 0xFFFFC000 ) << 4 | $a & 0x3C00 ) << 10 | $b & 0xF0F0000;
}
function check_hash( $h )
{
$c = $f = 0;
$hs = sprintf( '%u', $h ) ;
$l = strlen( $hs );
for ( $i = $l - 1; $i >= 0; $i--, $f++, $c += $r )
{
$r = $hs{ $i };
if ( 1 === ( $f % 2 ))
{
$r <<= 1;
$r = (int) ( $r / 10 + $r % 10 );
}
}
if (( $c %= 10 ) !== 0 )
{
$c = 10 - $c;
if (( $f % 2 ) === 1 )
{
if (( $c % 2 ) === 1 ) $c += 9;
$c >>= 1;
}
}
return '7'.$c.$hs;
}
$pr = "na";
if ( $f = fsockopen( "www.google.com", 80, $n, $s, 30 ))
{
$u = $_GET['url'];
fwrite( $f, "GET /search?client=navclient-auto&ch=".check_hash( hash_url( $u ))."&features=Rank&q=info:".$u." HTTP/1.1\r\nHost: www.google.com\r\nConnection: Close\r\n\r\n" );
while ( ! feof( $f ))
{
$d = fgets( $f, 128 );
$p = strpos( $d, "Rank_" );
if ( $p !== false )
{
$pr = intval( substr( $d, $p + 9 ));
break;
}
}
}
header( "Content-type: image/gif" );
readfile( "images/pagerank-".$pr.".gif" );
fclose( $f );
?>
7 Réponses à “Script PHP pour afficher le PageRank d’un site ou d’une page”
Bonjour, je n’arrive pas à utiliser votre code, je ne sais pas quelle fonction appeler, répondez moi par mail svp
Par Thomas le 23 Apr 2008
Voici ce qu’il faut faire pour utiliser ce script, qui est d’ailleurs probablement à revoir compte-tenu de l’évolution des services de Google.
1) Copiez le fichier php contenu dans l’archive pagerank-code.zip sur votre site Web.
2) Copiez les images contenues dans l’archive pagerank-images.zip dans un répertoire images placé au même niveau que le fichier pagerank.php.
3) Insérez un tag img pour afficher le PageRank d’une page Web.
L’exemple ci-dessous affichera une image comme celle-ci :
<img src=”http://blogs.media-tips.com/bernard.opic/wp-content/files/pagerank.php?url=http://blogs.media-tips.com/bernard.opic/” style=”border-width:0px;vertical-align:middle” alt=”PageRank” title=”PageRank”>
Par Bernard le 23 Apr 2008
Rebonjour
j’execute le script et je n’obtient aucune valeur pour la variable $pagerank !
j’ai essayé pour plusieurs sites !
Par Thomas le 23 Apr 2008
Comme je vous le disais au début de ma réponse, il est fort probable que ce script mérite une révision, compte-tenu de l’évolution des services de Google.
N’hésitez pas à me faire part de vos éventuelles découvertes à ce sujet, je me ferais un plaisir de mettre le code à jour si cela est possible.
Par Bernard le 23 Apr 2008
Pour ceux que ça interresse, voici une version fonctionnelle:
http://www.electronika.fr/blog/?p=49
Par cyril le 30 May 2008
Merci Cyril !
Après avoir lu ton message et visité ton site, j’ai repris le script que tu cites pour l’optimiser.
Comme cela fonctionne bien, j’en ai profité pour modifier la réponse à Thomas dans le deuxième commentaire à cet article.
Par Bernard le 7 Jun 2008
Ce script est excellent! Merci beaucoup…
Il marche impeccable et donne des résultats conformes à ce qui est donné par des sites permettant d’afficher le page rank (test sur une quarantaine de sites).
Encore une fois merci !
Par Vincnet le 10 Aug 2008