RSS Feeds

вторник, 1 декабря 2009 г.

Скрипт массовой проверки ТИЦ и PR

Коненчо есть много сервисов для массововй проверки сайтов на ТИЦ и PR, но лутше иметь свой собственный скрипт который будет это делать. Итак срипт:

checker.php

<?php
 set_time_limit (0);
 include (dirname (__FILE__)."/checker_functions.php");
 $urls = explode ("\r\n", file_get_contents (dirname (__FILE__)."/checker_urls.txt"));
 for ($urls_loop = 0; $urls_loop {
  $url = $urls[$urls_loop];
  $url = parse_url ($url);
  if (eregi ("www.", substr ($url['host'], 0, 4)))
  {$url['host'] = substr ($url['host'], 4, strlen ($url['host'])-4);}
  echo $url['host']." ";
  echo checker_get_tic ("http://".$url['host'])." ";
  echo checker_get_tic ("http://www.".$url['host'])." ";
  echo checker_get_pr("http://".$url['host'])."\r\n";
  sleep(1);
 }
?>

checker_functions.php

<?php
 function checker_get_tic ($url)
 {
  $cont = file_get_contents ("http://bar-navig.yandex.ru/u?ver=2&show=32&url=".$url);
  preg_match("/value=\"(.\d*)\"/", $cont, $tic);
  return $tic[1];
 }
define('GOOGLE_MAGIC', 0xE6359A60); 

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); 
  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); 
  return $mix[2]; 


function strord($string){ 
  for($i=0;$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-auto&ch=6%u&features=Rank&q=".$url,$checksum); // url to get from google 

  $contents=""; 

  $handle = fopen($google_url, "rb"); 
  $contents = ''; 
  while(!feof($handle)){ 
  $contents.= fread($handle, 8192); 
  } 
  fclose($handle); 
  $p=explode(":",$contents); 
  if(isset($p[2])): 
  $result[1]=$p[2]; 
  endif; 
  endif; 
  return $result; 


function checker_get_pr($url){
  global $db; 
  if(eregi('^http://www.',$url)){
  $url_www = str_replace('http://www.','http://',$url);
  }else{
  $url_www = str_replace('http://','http://www.',$url);
  }
  $pr=get_pr($url); 
  $output=$pr[0]; 
  $pagerank=$pr[1]; 
  sleep(1); 
  $pr=get_pr($url_www); 
  $output_www=$pr[0]; 
  $pagerank_www=$pr[1]; 
  if($pagerank<$pagerank_www){ 
  $pagerank=$pagerank_www; 
  } 
  if ($pagerank==-1) { 
  $pagerank=0; 
  } 
  return intval($pagerank); 

?>

список доменов должен быть в файле checker_urls.txt

запускать php.exe checker.php >rezults.txt

1 коммент.:

indigo комментирует...

http://www.sendspace.com/file/3qfksm скачать можно отсюда.

Отправить комментарий