Script d'affichage du PR

rachatdecredits

WRInaute impliqué
Bonjour, malgrés les milliers de pages qui parles de PR sur WRI, et les inombrables posts qui disent que l'on peut trouver le scritp sur GG, sans compter sur ceux qui donnent le script complet, mais qui ne fonctionne plus depuis plusieurs mois suite aux différents changements de l'algo de GG,

Je recherhce s'il vous plait un script complet qui récupére le cheksum et me permette d'afficher en interne le PR dans mon annuaire pour les sites inscrits, je ne souhaite pas utiliser de liens appartenant a d'autres sites pour affihcer le PR dans mon annuaire.

Merci énormément de votre grande générosité.
 

rachatdecredits

WRInaute impliqué
Merci pour cette premeire info :

J'ai trouvé un script qui fonctionne mais le resultat est en deux temps et l'affichage est plutot moche, je modifie le script actuellement...


Code:
<?php

/*
  Google PageRank Checksum Algorithm (Toolbar V3.x/4.x) V1.3
  compatible with PHP 4.4.x/PHP 5.x, supported X86_64 CPU

  Author's webpage:
      http://pagerank.gamesaga.net/
  ChangeLog:
      2005-09-13  V0.1 first release
      2005-10-21  V1.1 fix a bug for the final character
      2006-09-21  V1.2 compatible with PHP 4.4/PHP 5.x
      2006-09-29  V1.3 X86_64 CPU supported
*/

error_reporting(E_ALL);

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



$C = "<a href=\"https://www.google.com/search?client=navclient-auto&features=Rank:&q=info:";
$E = "\">Get PageRank</a>";

echo $C.$_GET['url'].'&ch='.CheckHash(HashURL($_GET['url'])).$E;
?>
[/code]
 

Discussions similaires

Haut