Показать сообщение отдельно

  #4  
Старый 23.06.2008, 15:16
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме:
7617458

Репутация: 3965


По умолчанию

В гугле найти просто. Тиц найдеш сам, это проще простого
PHP код:
// Google PR
define('GOOGLE_MAGIC'0xE6359A60);

function 
nooverflow($a)
  {
  while (
$a<-2147483648)
     
$a+=2147483648+2147483648;
  while (
$a>2147483647)
     
$a-=2147483648+2147483648;
  return 
$a;
  }

function 
zeroFill ($x$bits)
  {
  if (
$bits==0) return $x;
  if (
$bits==32) return 0;
  
$y = ($x 0x7FFFFFFF) >> $bits;
  if (
0x80000000 $x)
     {
     
$y |= (1<<(31-$bits));
     }
  return 
$y;
}

function 
mix($a,$b,$c)
  {
  
$a=(int)$a$b=(int)$b$c=(int)$c;
  
$a -= $b$a -= $c$a=nooverflow($a); $a ^= (zeroFill($c,13));
  
$b -= $c$b -= $a$b=nooverflow($b); $b ^= ($a<<8);
  
$c -= $a$c -= $b$c=nooverflow($c); $c ^= (zeroFill($b,13));
  
$a -= $b$a -= $c$a=nooverflow($a); $a ^= (zeroFill($c,12));
  
$b -= $c$b -= $a$b=nooverflow($b); $b ^= ($a<<16);
  
$c -= $a$c -= $b$c=nooverflow($c); $c ^= (zeroFill($b,5));
  
$a -= $b$a -= $c$a=nooverflow($a); $a ^= (zeroFill($c,3));
  
$b -= $c$b -= $a$b=nooverflow($b); $b ^= ($a<<10);
  
$c -= $a$c -= $b$c=nooverflow($c); $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];
}

function 
strord($string) {
for(
$i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return 
$result;
}

function 
get_pr($url) {

$result=array("",-1);

if ((
$url.""!="")&&($url.""!="http://")):
if (
substr(strtolower($url),0,7)!="http://"):
$url="http://".$url;
endif;

$url="info:".$url;
$checksum=GoogleCH(strord($url));
$google_url=sprintf("http://www.google.com/search?client=navclient&ch=6%u&features=Rank&q=".$url,$checksum); // url to get from google

$handle = @fopen($google_url"rb");
$contents '';
if (
$handle) {
while (!@
feof($handle)) {
 
$contents.= @fread($handle8192);
}
fclose($handle);
$p=explode(":",$contents);
if (isset(
$p[2])):
$result=trim($p[2]);
endif;
} else {
$result 0;}
endif;

return(
$result!="" && (strlen($result)>&& (strlen($result)<3))?$result:"0");


Последний раз редактировалось Dimi4; 23.06.2008 в 15:20..
 
Ответить с цитированием