Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы со скриптом определения Google PageRank
 
 автор: Boont   (05.09.2006 в 10:52)   письмо автору
 
 

Здравствуйте.
Есть некий скрипт который Определяет Google PageRank и Тиц яндекса а потом заносит данные в базу данных.
Ранее скрипт работал нормально.
Но теперь перестал определятся Google PageRank.
Вот собственно код скрипта:


<?
  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 
$c += ($url[$k 8] << 8);
      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]);
    }
    
$mix mix($a,$b,$c);
    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-auto&ch=6%u&features=Rank&q=".$url,$checksum);
      
$contents "";
      
$handle = @fopen($google_url,"rb");
      if(!
$handle) return false;
      
$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 
google_pr($url)
  {
/*    if(eregi('^http://www.',$url))
    {
      $url_www = str_replace('http://www.','http://',$url);
    }
    else
    {
      $url_www = str_replace('http://','http://www.',$url);
    } */
    
$url_www "http://$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);
  }

  function 
yandex_yc($url)
  {
    
$yandex_url "http://www.yandex.ru/cy?base=0&host=$url";
    
$handle = @fopen($yandex_url,"rb");
    if(
$handle)
    {
      
$contents '';
      while(!
feof($handle))
      {
        
$contents.= fread($handle,8192);
      }
      
fclose($handle);
      if(
preg_match("/title=\"[^\"]+\">([0-9]+)/i",$contents,$yc))
        return 
$yc[1];
      else
        return 
0;
    }
    else
      return 
false;
  }
?>


Помогите решить эту проблему..

   
 
 автор: cheops   (05.09.2006 в 11:19)   письмо автору
 
   для: Boont   (05.09.2006 в 10:52)
 

Лучше приведите конкретный адрес для страницы с Google, чтобы можно было тестировать скрипт.

   
 
 автор: Boont   (11.09.2006 в 00:30)   письмо автору
 
   для: cheops   (05.09.2006 в 11:19)
 

Насчет конкретного адреса - не очень понятно.
Но одно могу сказать точно.
Скрипт на php четвертой версии работает нормально а на php пятой версии работать не хочет.
Вот адрес сайта где я использую этот скрипт: http://www.internet.prodam-site.ru/
Этот сайт находиться на хостинге компании "Хостинговые телесистемы"
У них установлено php5 и скрипт не хочет работать...
Пришлось идти на ухищрение...
Скрипт через крон запускается на валуехосте где установлено php4 а данные он записывает в базу данных которая находится на хостинговых телесистемах))))
Вобщем один скрипт - а требует два сервера))))

   
 
 автор: Boont   (25.09.2006 в 01:28)   письмо автору
 
   для: cheops   (05.09.2006 в 11:19)
 

Насчет конкретного адреса - не очень понятно.
Но одно могу сказать точно.
Скрипт на php четвертой версии работает нормально а на php пятой версии работать не хочет.
Вот адрес сайта где я использую этот скрипт: http://www.internet.prodam-site.ru/
Этот сайт находиться на хостинге компании "Хостинговые телесистемы"
У них установлено php5 и скрипт не хочет работать...
Пришлось идти на ухищрение...
Скрипт через крон запускается на валуехосте где установлено php4 а данные он записывает в базу данных которая находится на хостинговых телесистемах))))
Вобщем один скрипт - а требует два сервера))))

   
 
 автор: cheops   (25.09.2006 в 10:53)   письмо автору
 
   для: Boont   (25.09.2006 в 01:28)
 

А не работа на пятой версии PHP в чём выражается? Какие-то ошибки выдаются?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования