Public feed #527686

PR

public php v1 · immutable
Raw Edit
·published 2007-06-01 12:01 UTC
rendered paste body
<?phpdefine('GOOGLE_MAGIC', 0xE6359A60);$mh = curl_multi_init();function process($data,$url){                           $pos = strpos($data, "Rank_");         if($pos === false){         }else{           $pagerank = substr($data, $pos + 9);          if ($hFile=fopen(trim($pagerank) . ".txt",'a'))          {          fwrite($hFile,$url);          }          else          {          $hFile=fopen(trim($pagerank) . ".txt",'w');          fwrite($hFile,$url);          }          echo $pagerank;                   }} 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){   case 11: $c+=($url[$k+10]<<24);   case 10: $c+=($url[$k+9]<<16);   case 9 : $c+=($url[$k+8]<<8);   /* the first byte of c is reserved for the length */   case 8 : $b+=($url[$k+7]<<24);   case 7 : $b+=($url[$k+6]<<16);   case 6 : $b+=($url[$k+5]<<8);   case 5 : $b+=($url[$k+4]);   case 4 : $a+=($url[$k+3]<<24);   case 3 : $a+=($url[$k+2]<<16);   case 2 : $a+=($url[$k+1]<<8);   case 1 : $a+=($url[$k+0]);  }  $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 addrank2CURL($url,$multiNumber){ global $mh,$conn;	$ch = "6".GoogleCH(strord("info:" . $url));	$conn[$multiNumber]=curl_init("http://www.google.com/search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url);       curl_setopt($conn[$multiNumber],CURLOPT_RETURNTRANSFER,1);//return data as string        curl_setopt($conn[$multiNumber],CURLOPT_FOLLOWLOCATION,1);//follow redirects       curl_setopt($conn[$multiNumber],CURLOPT_MAXREDIRS,2);//maximum redirects       curl_setopt($conn[$multiNumber],CURLOPT_CONNECTTIMEOUT,10);//timeout       curl_multi_add_handle ($mh,$conn[$multiNumber]);}$urls=file("urls.txt");foreach($urls as $int => $url){addrank2CURL(trim($url),$int);}do { $n=curl_multi_exec($mh,$active); } while ($active);foreach ($urls as $i => $url) {       $res[$i]=curl_multi_getcontent($conn[$i]);		process($res[$i],$url);       curl_multi_remove_handle($mh,$conn[$i]);       curl_close($conn[$i]);}curl_multi_close($mh);?>