Skip to main content

Script PHP Per Ottenere Il PageRank Di Una Pagina Web

Avevo la necessità di trovare uno script php che mi restituisse il valore del PR di una pagina web.

Il mio scopo era quello di ciclare su una serie di pagine, ottenere il relativo PageRank, e salvarmi i dati così ottenuti su un database Mysql.

Ho fatto una breve ricerca su Internet ed ho scoperto che ce ne sono davvero tantissimi. Quelli che ho trovato, tuttavia, avevano tutti un 'piccolissimo difetto'. Non funzionavano.

Una volta richiamata la funzione, infatti, il valore del PageRank restituito era NULL ( nel migliore dei casi ). Dopo ricerche più approfondite e qualche piccola modifica, finalmente ho ottenuto uno script funzionante al 100%.

Ora, visto e considerato che cercare uno script php funzionante che restituisca il PageRank di una pagina non è stato poi così banale come sembra ( almeno per me: ci ho perso mezz' ora buona ), voglio condividere con voi quello ottenuto e definitivo. Eccolo:

<?php
function getpr($q,$host='toolbarqueries.google.com',$context=NULL) {
    if (!preg_match('/^(http:\/\/)?([^\/]+)/i', $q)) { $q='http://'. $q; }; 
    $seed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";
    $result = 0x01020345;
    $len = strlen($q);
    for ($i=0; $i<$len; $i++) {
        $result ^= ord($seed{$i%strlen($seed)}) ^ ord($q{$i});
        $result = (($result >> 23) & 0x1ff) | $result << 9;
    }
    $ch=sprintf('8%x', $result);
    $url='http://%s/tbr?client=navclient-auto&ch=%s&features=Rank&q=info:%s';
    $url=sprintf($url,$host,$ch,$q);
    @$pr=file_get_contents($url,false,$context);
    return $pr?substr(strrchr($pr, ':'), 1):false;
}
?>

Si tratta di una funzione php ed il valore del PR può essere ottenuto molto facilmente richiamandola in questo modo:

<?php
echo getpr('dns');
?>

Mi auguro possa essere di aiuto a qualcuno.

Condividi