Calculate Google Pagerank with PHP Calcolare pagerank di Google con PHP

This is modified code that I found from the Internet the orginal code that may not work on some server that php has 32bit operation problem and I already tested on my server. Questo è modificato il codice che ho trovato da Internet il codice originale che potrebbe non funzionare su alcuni server che ha php 32bit operazione problema e ho già provato sul mio server.

PHP: PHP:
  1. <?php <? php
  2. define ( 'GOOGLE_MAGIC' , 0xE6359A60 ) ; define ( 'GOOGLE_MAGIC', 0xE6359A60);
  3. //unsigned shift right / / unsigned sposta a destra
  4. function zeroFill ( $a , $b ) zeroFill funzione ($ a, $ b)
  5. { (
  6. $z = hexdec ( 80000000 ) ; $ z = hexdec (80000000);
  7. if ( $z & $a ) if ($ z & $ a)
  8. { (
  9. $a = ( $a >> 1 ) ; $ a = ($ a>> 1);
  10. $a &= ( ~ $z ) ; $ a & = (~ $ z);
  11. $a |= 0x40000000; $ a | = 0x40000000;
  12. $a = ( $a >> ( $b - 1 ) ) ; $ a = ($ a>> ($ b - 1));
  13. } )
  14. else altro
  15. { (
  16. $a = ( $a >> $b ) ; $ a = ($ a>> $ b);
  17. } )
  18. return $a ; return $ a;
  19. } )
  20. function toInt32 ( & $x ) { funzione toInt32 & ($ x) (
  21. $z = hexdec ( 80000000 ) ; $ z = hexdec (80000000);
  22. $y = ( int ) $x ; $ y = (int) $ x;
  23. if ( $y ==- $z && $x <- $z ) { if ($ y $ z ==- & & $ x <- $ z) (
  24. $y = ( int ) ( ( - 1 ) * $x ) ; $ y = (int) ((- 1) * $ x);
  25. $y = ( - 1 ) * $y ; $ y = (- 1) * $ y;
  26. } )
  27. $x = $y ; $ $ x = y;
  28. } )
  29. function mix ( $a , $b , $c ) { funzione mix ($ a, $ b, $ c) (
  30. $a -= $b ; $a -= $c ; toInt32 ( $a ) ; $a = ( int ) ( $a ^ ( zeroFill ( $c , 13 ) ) ) ; $ a -= $ b, $ a -= $ c; toInt32 ($ a); $ a = (int) ($ a ^ (zeroFill ($ c, 13)));
  31. $b -= $c ; $b -= $a ; toInt32 ( $b ) ; $b = ( int ) ( $b ^ ( $a << 8 ) ) ; -= $ b $ c, $ b $ a -=; toInt32 ($ b); $ b = (int) ($ b ^ ($ a <<8));
  32. $c -= $a ; $c -= $b ; toInt32 ( $c ) ; $c = ( int ) ( $c ^ ( zeroFill ( $b , 13 ) ) ) ; -= $ c $ a; -= $ c $ b; toInt32 ($ c); $ c = (int) ($ c ^ (zeroFill ($ b, 13)));
  33. $a -= $b ; $a -= $c ; toInt32 ( $a ) ; $a = ( int ) ( $a ^ ( zeroFill ( $c , 12 ) ) ) ; $ a -= $ b, $ a -= $ c; toInt32 ($ a); $ a = (int) ($ a ^ (zeroFill ($ c, 12)));
  34. $b -= $c ; $b -= $a ; toInt32 ( $b ) ; $b = ( int ) ( $b ^ ( $a << 16 ) ) ; -= $ b $ c, $ b $ a -=; toInt32 ($ b); $ b = (int) ($ b ^ ($ a <<16));
  35. $c -= $a ; $c -= $b ; toInt32 ( $c ) ; $c = ( int ) ( $c ^ ( zeroFill ( $b , 5 ) ) ) ; -= $ c $ a; -= $ c $ b; toInt32 ($ c); $ c = (int) ($ c ^ (zeroFill ($ b, 5)));
  36. $a -= $b ; $a -= $c ; toInt32 ( $a ) ; $a = ( int ) ( $a ^ ( zeroFill ( $c , 3 ) ) ) ; $ a -= $ b, $ a -= $ c; toInt32 ($ a); $ a = (int) ($ a ^ (zeroFill ($ c, 3)));
  37. $b -= $c ; $b -= $a ; toInt32 ( $b ) ; $b = ( int ) ( $b ^ ( $a << 10 ) ) ; -= $ b $ c, $ b $ a -=; toInt32 ($ b); $ b = (int) ($ b ^ ($ a <<10));
  38. $c -= $a ; $c -= $b ; toInt32 ( $c ) ; $c = ( int ) ( $c ^ ( zeroFill ( $b , 15 ) ) ) ; -= $ c $ a; -= $ c $ b; toInt32 ($ c); $ c = (int) ($ c ^ (zeroFill ($ b, 15)));
  39. return array ( $a , $b , $c ) ; ritorno array ($ a, $ b, $ c);
  40. } )
  41. function GoogleCH ( $url , $length = null , $init =GOOGLE_MAGIC ) { funzione GoogleCH ($ url, $ lunghezza = null, $ init = GOOGLE_MAGIC) (
  42. if ( is_null ( $length ) ) { if (is_null ($ lunghezza)) (
  43. $length = sizeof ( $url ) ; $ lunghezza = sizeof ($ url);
  44. } )
  45. $a = $b = 0x9E3779B9; $ a = $ b = 0x9E3779B9;
  46. $c = $init ; $ c = $ init;
  47. $k = 0 ; $ k = 0;
  48. $len = $length ; $ len = $ lunghezza;
  49. while ( $len >= 12 ) { while ($ len> = 12) (
  50. $a += ( $url [ $k + 0 ] + ( $url [ $k + 1 ] << 8 ) + ( $url [ $k + 2 ] << 16 ) + ( $url [ $k + 3 ] << 24 ) ) ; $ a + = ($ url [$ k + 0] + ($ url [$ k + 1] <<8) + ($ url [$ k + 2] <<16) + ($ url [$ k + 3] <<24));
  51. $b += ( $url [ $k + 4 ] + ( $url [ $k + 5 ] << 8 ) + ( $url [ $k + 6 ] << 16 ) + ( $url [ $k + 7 ] << 24 ) ) ; $ b + = ($ url [$ k + 4] + ($ url [$ k + 5] <<8) + ($ url [$ k + 6] <<16) + ($ url [$ k + 7] <<24));
  52. $c += ( $url [ $k + 8 ] + ( $url [ $k + 9 ] << 8 ) + ( $url [ $k + 10 ] << 16 ) + ( $url [ $k + 11 ] << 24 ) ) ; $ c + = ($ url [$ k + 8] + ($ url [$ k + 9] <<8) + ($ url [$ k + 10] <<16) + ($ url [$ k + 11] <<24));
  53. $mix = mix ( $a , $b , $c ) ; $ mix = mix ($ a, $ b, $ c);
  54. $a = $mix [ 0 ] ; $b = $mix [ 1 ] ; $c = $mix [ 2 ] ; $ a = $ mix [0]; $ b = $ mix [1]; $ c = $ mix [2];
  55. $k += 12 ; $ k + = 12;
  56. $len -= 12 ; $ len -= 12;
  57. } )
  58. $c += $length ; $ c + = $ lunghezza;
  59. switch ( $len ) /* all the case statements fall through */ switch ($ len) / * caso tutte le dichiarazioni caduta attraverso * /
  60. { (
  61. case 11 : $c += ( $url [ $k + 10 ] << 24 ) ; caso 11: $ c + = ($ url [$ k + 10] <<24);
  62. case 10 : $c += ( $url [ $k + 9 ] << 16 ) ; caso 10: $ c + = ($ url [$ k + 9] <<16);
  63. case 9 : $c += ( $url [ $k + 8 ] << 8 ) ; caso 9: $ c + = ($ url [$ k + 8] <<8);
  64. /* the first byte of c is reserved for the length */ / * Il primo byte di c è riservato per la lunghezza * /
  65. case 8 : $b += ( $url [ $k + 7 ] << 24 ) ; caso 8: $ b + = ($ url [$ k + 7] <<24);
  66. case 7 : $b += ( $url [ $k + 6 ] << 16 ) ; caso 7: $ b + = ($ url [$ k + 6] <<16);
  67. case 6 : $b += ( $url [ $k + 5 ] << 8 ) ; caso 6: $ b + = ($ url [$ k + 5] <<8);
  68. case 5 : $b += ( $url [ $k + 4 ] ) ; caso 5: $ b + = ($ url [$ k + 4]);
  69. case 4 : $a += ( $url [ $k + 3 ] << 24 ) ; case 4: $ a + = ($ url [$ k + 3] <<24);
  70. case 3 : $a += ( $url [ $k + 2 ] << 16 ) ; case 3: $ a + = ($ url [$ k + 2] <<16);
  71. case 2 : $a += ( $url [ $k + 1 ] << 8 ) ; case 2: $ a + = ($ url [$ k + 1] <<8);
  72. case 1 : $a += ( $url [ $k + 0 ] ) ; case 1: $ a + = ($ url [$ k + 0]);
  73. /* case 0: nothing left to add */ / * Caso 0: niente da aggiungere * /
  74. } )
  75. $mix = mix ( $a , $b , $c ) ; $ mix = mix ($ a, $ b, $ c);
  76. /*-------------------------------------------- report the result */ /*-------------------------------------------- Relazione il risultato * /
  77. return $mix [ 2 ] ; return $ mix [2];
  78. } )
  79. //converts a string into an array of integers containing the numeric value of the char / / converte una stringa in una matrice di interi contenente il valore numerico del carattere
  80. function strord ( $string ) { funzione strord ($ string) (
  81. for ( $i = 0 ; $i <strlen ( $string ) ; $i ++ ) { for ($ i = 0; $ i <strlen ($ string); $ i + +) (
  82. $result [ $i ] = ord ( $string { $i } ) ; $ result [$ i] = ord ($ string ($ i));
  83. } )
  84. return $result ; return $ result;
  85. } )
  86. // converts an array of 32 bit integers into an array with 8 bit values. / / Converte un array di interi a 32 bit in una serie con valori a 8 bit. Equivalent to (BYTE *)arr32 Equivalenti a (BYTE *) arr32
  87. function c32to8bit ( $arr32 ) { funzione c32to8bit ($ arr32) (
  88. for ( $i = 0 ; $i <count ( $arr32 ) ; $i ++ ) { for ($ i = 0; $ i <count ($ arr32); $ i + +) (
  89. for ( $bitOrder = $i * 4 ; $bitOrder <= $i * 4 + 3 ; $bitOrder ++ ) { for ($ bitOrder = $ i * 4; $ bitOrder <= $ i + 4 * 3; $ bitOrder + +) (
  90. $arr8 [ $bitOrder ] = $arr32 [ $i ] & 255 ; arr8 $ [$ bitOrder] = $ arr32 [$ i] & 255;
  91. $arr32 [ $i ] =zeroFill ( $arr32 [ $i ] , 8 ) ; arr32 $ [$ i] = zeroFill ($ arr32 [$ i], 8);
  92. } )
  93. } )
  94. return $arr8 ; return $ arr8;
  95. } )
  96. function get_page_rank ( $url ) { funzione get_page_rank ($ url) (
  97. $url = preg_replace ( '/ \? .*$/' , '?' , $url ) ; $ url = preg_replace ( '/ \? .*$/','? ', $ url);
  98. $reqgr = "info:" . $url ; reqgr $ = "info:". $ url;
  99. $reqgre = "info:" . urlencode ( $url ) ; reqgre $ = "info:". urlencode ($ url);
  100. $gch = "6" .GoogleCH ( strord ( $reqgr ) ) ; gch $ = "6". GoogleCH (strord ($ reqgr));
  101. $fsock = fsockopen ( 'toolbarqueries.google.com' , 80 , $errno , $errstr ) ; fsock $ = fsockopen ( 'toolbarqueries.google.com', 80, $ errno, $ errstr);
  102. if ( ! $fsock ) { if (! $ fsock) (
  103. echo 'Can not connect to server' ; echo 'Impossibile connettersi al server';
  104. return - 1 ; ritorno - 1;
  105. } )
  106. $base_get = "/search?client=navclient-auto&ch=" . $gch . "&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=" . $reqgre ; base_get $ = "/ search? cliente = navclient-auto & ch =". gch $. "& ie = UTF-8 & oe = UTF-8 & caratteristiche = Rank: FVN & q =". reqgre $;
  107. fputs ( $fsock , "GET $base_get HTTP/1.1 \r \n " ) ; fputs ($ fsock, "GET $ base_get HTTP/1.1 \ r \ n");
  108. fputs ( $fsock , "HOST: toolbarqueries.google.com \r \n " ) ; fputs ($ fsock, "HOST: toolbarqueries.google.com \ r \ n");
  109. fputs ( $fsock , "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1) \r \n " ) ; fputs ($ fsock, "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-grandi, Windows XP 5.1) \ r \ n");
  110. fputs ( $fsock , "Connection: close \r \n \r \n " ) ; fputs ($ fsock, "Connection: close \ r \ n \ r \ n");
  111. while ( ! feof ( $fsock ) ) { while (! feof ($ fsock)) (
  112. $res [ 'content' ] .= fread ( $fsock , 1024 ) ; $ res [ 'contenuto'] .= fread ($ fsock, 1024);
  113. } )
  114. fclose ( $fsock ) ; fclose ($ fsock);
  115. if ( preg_match ( '/Rank_.*?:.*?:( \d +)/i' , $res [ 'content' ] , $m ) ) { if (preg_match ( '/ Rank_ .*?:.*?:( \ d +) / i', $ res [ 'contenuto'], $ m)) (
  116. return $m [ 1 ] ; return $ m [1];
  117. } else {