Récupération du PR d'une page
5 messages
• Page 1 sur 1
-

acamar - WRInaute passionné

- Messages: 1892
- Inscription: 27 Nov 2005
Tiens celui là qui marche sur tout les hebergeur (OVH compris) peut être aussi pour Free, et genre lui même le graphique semblable au PR affiché dans les répertoires de Google.. juste un petit problème j'ai pas su comment l'intégrer car il pas une image mais du code html sinon il est très fiable :
Exemple : http://www.milafat.net/pagerank/display ... nkinfo.com
- Code: Tout sélectionner
<?php
//PageRank Lookup v1.1 by HM2K (update: 31/01/07)
//based on an alogoritham found here: http://pagerank.gamesaga.net/
//settings - host and user agent
$googlehost='toolbarqueries.google.com';
$googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5';
//convert a string to a 32-bit integer
function StrToNum($Str, $Check, $Magic) {
$Int32Unit = 4294967296; // 2^32
$length = strlen($Str);
for ($i = 0; $i < $length; $i++) {
$Check *= $Magic;
//If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31),
// the result of converting to integer is undefined
// refer to http://www.php.net/manual/en/language.types.integer.php
if ($Check >= $Int32Unit) {
$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
//if the check less than -2^31
$Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
}
$Check += ord($Str{$i});
}
return $Check;
}
//genearate a hash for a url
function HashURL($String) {
$Check1 = StrToNum($String, 0x1505, 0x21);
$Check2 = StrToNum($String, 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);
}
//genearate a checksum for the hash string
function CheckHash($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;
}
//return the pagerank checksum hash
function getch($url) { return CheckHash(HashURL($url)); }
//return the pagerank figure
function getpr($url) {
global $googlehost,$googleua;
$ch = getch($url);
$fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
if ($fp) {
$out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n";
//echo "<pre>$out</pre>\n"; //debug only
$out .= "User-Agent: $googleua\r\n";
$out .= "Host: $googlehost\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
//$pagerank = substr(fgets($fp, 128), 4); //debug only
//echo $pagerank; //debug only
while (!feof($fp)) {
$data = fgets($fp, 128);
//echo $data;
$pos = strpos($data, "Rank_");
if($pos === false){} else{
$pr=substr($data, $pos + 9);
$pr=trim($pr);
$pr=str_replace("\n",'',$pr);
return $pr;
}
}
//else { echo "$errstr ($errno)<br />\n"; } //debug only
fclose($fp);
}
}
//generate the graphical pagerank
function pagerank($url,$width=40,$method='style') {
if (!preg_match('/^(http:\/\/)?([^\/]+)/i', $url)) { $url='http://'.$url; }
$pr=getpr($url);
$pagerank="PageRank: $pr/10";
//The (old) image method
if ($method == 'image') {
$prpos=$width*$pr/10;
$prneg=$width-$prpos;
$html='<img src="http://www.google.com/images/pos.gif" width='.$prpos.' height=4 border=0 alt="'.$pagerank.'"><img src="http://www.google.com/images/neg.gif" width='.$prneg.' height=4 border=0 alt="'.$pagerank.'">';
}
//The pre-styled method
if ($method == 'style') {
$prpercent=100*$pr/10;
$html='<div style="position: relative; width: '.$width.'px; padding: 0; background: #D9D9D9;"><strong style="width: '.$prpercent.'%; display: block; position: relative; background: #5EAA5E; text-align: center; color: #333; height: 4px; line-height: 4px;"><span></span></strong></div>';
}
$out='<a href="'.$url.'" title="'.$pagerank.'">'.$html.'</a>';
return $out;
}
//if ((!isset($_POST['url'])) && (!isset($_GET['url']))) { echo '<form action="" method="post"><input name="url" type="text"><input type="submit" name="Submit" value="Get Pagerank"></form>'; }
if (isset($_REQUEST['url'])) { echo pagerank($_REQUEST['url']); }
?>
Exemple : http://www.milafat.net/pagerank/display ... nkinfo.com
- zeb
- WRInaute accro

- Messages: 3283
- Inscription: 5 Déc 2004
pour un affichage dans les deux modes possibles :
(en fin du script)
sinon pour avoir une image (en fait deux images qui en forment une) il faux bidouiller la fonction pagerank($url,$width=40,$method='style')
ça marche chez free aussi
- Code: Tout sélectionner
if (isset($_REQUEST['url'])) { echo pagerank($_REQUEST['url'],40,'style').'<br/><br/>'; }
if (isset($_REQUEST['url'])) { echo pagerank($_REQUEST['url'],40,'image').'<br/><br/>'; }
(en fin du script)
sinon pour avoir une image (en fait deux images qui en forment une) il faux bidouiller la fonction pagerank($url,$width=40,$method='style')
- Code: Tout sélectionner
<img src="http://www.google.com/images/pos.gif" width=16 height=4 border=0 alt="PageRank: 4/10">
<img src="http://www.google.com/images/neg.gif" width=24 height=4 border=0 alt="PageRank: 4/10">
ça marche chez free aussi
-

acamar - WRInaute passionné

- Messages: 1892
- Inscription: 27 Nov 2005
J'ai même bidouiller ceci pour un affichage classique en images du PR
Sinon pour l'autre bidouille, je pige encore pas.. parce que moi.. PHP.. tu vois...
Pour ce qui est de Free ces denier temps c'est du n'importe quoi.. j'ai même pas pu parvenu à me connecter en FTP pour essayer le script du coup j'ai abandonné...
- Code: Tout sélectionner
//The classic method
if ($method == 'classic') {
$prpos=$width*$pr/10;
$prneg=$width-$prpos;
$html='<img border="0" src="img/pr'.$pr.'.gif" alt="'.$pagerank.'">';
Sinon pour l'autre bidouille, je pige encore pas.. parce que moi.. PHP.. tu vois...
Pour ce qui est de Free ces denier temps c'est du n'importe quoi.. j'ai même pas pu parvenu à me connecter en FTP pour essayer le script du coup j'ai abandonné...
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Récupération infos room
- recuperation du rank alexa
- pb de recuperation de checksum
- récupération d'URL
- Récupération d'info
- Récupération de l'URL
- Recuperation valeur apres le ?
- récupération automatique du pagerank
- Compteur : Récupération de donnée
- Récupération de la recherche google ?
- Plusieurs RewriteCond et récupération de variables
- Récupération flux vidéo dans IE ou FF???
- :?: récupération de l'url et utilisation de script
- Récuperation statistiques AdSense via PHP
- Récupération d'un tableau (array)
- CSV AdStats v4 : le logiciel pour analyser ses statistiques AdSense - 15-11-2007
- 5 fans de VTT chez Google lancent le blog Google Earthlings - 10-10-2006
- Lancement de Spider Simulator - 13-06-2004
- Moteurs de recherche : la bataille des alliances fait rage - 08-05-2002
- Rumeur : Google pourrait racheter Adscape Media - 22-01-2007
- Présentation de l'indexation Google - Googlebot, le robot de Google - 05-09-2008
- PR Weaver en test en avant-première - 12-07-2004
- Développer un outil avec la Google API - 24-04-2003
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

