Récupération du PR d'une page

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

syrx20
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 180
Inscription: Ven Aoû 12, 2005 19:40

Récupération du PR d'une page

Message le Lun Nov 19, 2007 12:37

Le script de récupération du PageRank que j'utilisais ne fonctionne plus.

Est ce quelqu'un en aurait un qui marche depuis la mise à jour du PR ?

Merci


acamar
WRInaute accro
WRInaute accro
 
Messages: 1663
Inscription: Dim Nov 27, 2005 22:37

Message le Lun Nov 19, 2007 13:15

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 :


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
WRInaute accro
 
Messages: 1186
Inscription: Dim Déc 05, 2004 19:47

Message le Lun Nov 19, 2007 17:23

pour un affichage dans les deux modes possibles :
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


zeb
WRInaute accro
WRInaute accro
 
Messages: 1186
Inscription: Dim Déc 05, 2004 19:47

Message le Lun Nov 19, 2007 21:40

marche plus chez free ? ... ? mais OK chez 1&1
bizarre car testé il y a qque heures ça tournait parfaitement.


acamar
WRInaute accro
WRInaute accro
 
Messages: 1663
Inscription: Dim Nov 27, 2005 22:37

Message le Lun Nov 19, 2007 21:47

J'ai même bidouiller ceci pour un affichage classique en images du PR
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é...


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités