Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Script per calcolare pagerank

    Salve, io ho questo script
    Codice PHP:
    <?php
    //error_reporting(E_ALL);

    define('GOOGLE_MAGIC'0xE6359A60);

    //unsigned shift right
    function zeroFill($a$b)
    {
    $z hexdec(80000000);
    if (
    $z $a)
    {
    $a = ($a>>1);
    $a &= (~$z);
    $a |= 0x40000000;
    $a = ($a>>($b-1));
    }
    else
    {
    $a = ($a>>$b);
    }
    return 
    $a;
    }
    function 
    mix($a,$b,$c)
    {
    $a -= $b$a -= $c$a ^= (zeroFill($c,13));
    $b -= $c$b -= $a$b ^= ($a<<8);
    $c -= $a$c -= $b$c ^= (zeroFill($b,13));
    $a -= $b$a -= $c$a ^= (zeroFill($c,12));
    $b -= $c$b -= $a$b ^= ($a<<16);
    $c -= $a$c -= $b$c ^= (zeroFill($b,5));
    $a -= $b$a -= $c$a ^= (zeroFill($c,3));
    $b -= $c$b -= $a$b ^= ($a<<10);
    $c -= $a$c -= $b$c ^= (zeroFill($b,15));

    return array(
    $a,$b,$c);
    }

    function 
    GoogleCH($url$length=null$init=GOOGLE_MAGIC)
    {
    if(
    is_null($length))
    {
    $length sizeof($url);
    }
    $a $b 0x9E3779B9;
    $c $init;
    $k 0;
    $len $length;
    while(
    $len >= 12)
    {
    $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
    $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
    $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
    $mix mix($a,$b,$c);
    $a $mix[0]; $b $mix[1]; $c $mix[2];
    $k += 12;
    $len -= 12;
    }

    $c += $length;
    switch(
    $len/* all the case statements fall through */
    {
    case 
    11$c+=($url[$k+10]<<24);
    case 
    10$c+=($url[$k+9]<<16);
    case 
    $c+=($url[$k+8]<<8);
    /* the first byte of c is reserved for the length */
    case $b+=($url[$k+7]<<24);
    case 
    $b+=($url[$k+6]<<16);
    case 
    $b+=($url[$k+5]<<8);
    case 
    $b+=($url[$k+4]);
    case 
    $a+=($url[$k+3]<<24);
    case 
    $a+=($url[$k+2]<<16);
    case 
    $a+=($url[$k+1]<<8);
    case 
    $a+=($url[$k+0]);
    /* case 0: nothing left to add */
    }
    $mix mix($a,$b,$c);
    /*-------------------------------------------- report the result */
    return $mix[2];
    }

    //converts a string into an array of integers containing the numeric value of the char
    function strord($string) {
    for(
    $i=0;$i<strlen($string);$i++) {
    $result[$i] = ord($string{$i});
    }
    return 
    $result;
    }

    function 
    ReadPR($link)
    {
    $fp fsockopen ("www.google.com"80$errno$errstr30);
    //$ip = gethostbyname("www.google.com");
    //$fp = fsockopen ($ip, 80, $errno, $errstr, 30);

    if (!$fp)
    {
    echo 
    "$errstr ($errno)\n";
    exit(
    1);
    }
    else
    {
    //$out = "GET $link HTTP/1.1\r\n";
    $out "GET $link HTTP/1.0\r\n";
    $out .= "Host: toolbarqueries.google.com\r\n";
    $out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114.9-big; Windows 5.2)\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp$out);

    //while (!feof($fp))
    // echo fgets ($fp,128);

    do{
    $line fgets($fp128);
    }while (
    $line !== "\r\n");
    $data fread($fp,8192);
    fclose ($fp);
    return 
    $data;
    }
    }

    function 
    GetPR($url)
    {
    $url ='info:'.$url;
    $ch GoogleCH(strord($url));
    $data ReadPR("/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url");
    $rankarray explode (':'$data);
    return 
    $rankarray[2];
    }

    /* per essere avvisati quando qualcuno richiede il calcolo del PR */

    if ( isset($_POST['url']) && $_POST['url'] !== '' )
    {
    $email "webmaster@websteg.com";
    mail($email"Page rank checker",
    "Richiesta Page Rank: ".$_POST['url']);

    /* fine allert */

    echo '<div align="center"><table><tr><td align="center">Il PageRank in Google per '.$_POST['url'].' è : '.GetPR($_POST['url']).'[img]google-page-rank/'.GetPR($_POST['url']).'.jpg[/img]</td></tr></table></div>';

    }
    else
    {
    echo 
    "<form action='' method='post'>"."URL: <input name='url' value='http://' type='text' size=40> ";
    echo 
    "<input name='submit' type='submit' value='Ottieni il PageRank'></form>";
    }

    ?>
    serve per calcolare gli attuali pagerank di siti. Tramite un casella di un form s'inserisce l'url e si preme invio, il risultato è apposto soltanto se riesce a calcolarlo mentre se non riesce dovrebbe riportare come risultato "PR-1" . Non è così se non riesce a calcolare mi s'ingrippa lo script.
    Dov'è l'errore?

    Grazie

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.