Récupération du PR d'une page

syrx20
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 12 Aoû 2005

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 passionné
WRInaute passionné
 
Messages: 1892
Inscription: 27 Nov 2005

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: 3283
Inscription: 5 Déc 2004

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: 3283
Inscription: 5 Déc 2004

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 passionné
WRInaute passionné
 
Messages: 1892
Inscription: 27 Nov 2005

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é...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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