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

Форум PHP

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

 

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

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

тема: Как увеличить производительность скрипта
 
 автор: webwizard   (29.01.2008 в 17:31)   письмо автору
 
 

Здравствуйте.

Суть в следующем: есть скрипт производящий анализ сайта, вы указываете сайт и получаете следующую статистику: (адрес скрипта http://www.articlesworld.ru/stat/analysis.php)
- ИЦ, PR и т.п.
- название сайта, ключевые слова, описание
- число обратных ссылок по Yandex, Rambler и т.п.
- присутствие сайта в каталогах
- и т.п.

В скрипте используются функции вида:


function robots($url)
 {

     $file = @file_get_contents("http://www.yandex.ru/cgi-bin/test-robots?host=$url");
     if(preg_match("!Сервер вернул код ошибки 404!si",$file,$ok))
      $link = "нет";

     else
      $link = "есть";


  return $link;
 }

В соответствующих местах происходит вызов функций.

Поскольку таких функций много, то это замедляет работу.

Подскажите, пожалуйста, как можно увеличить производительность в данной ситуации.


Я очень надеюсь на Вашу помощь.

Заранее большое Вам спасибо

   
 
 автор: webwizard   (29.01.2008 в 19:06)   письмо автору
 
   для: webwizard   (29.01.2008 в 17:31)
 

Неужели нет соображений? Ну кто-нибудь выскажитесь.

   
 
 автор: EXP   (29.01.2008 в 23:05)   письмо автору
 
   для: webwizard   (29.01.2008 в 19:06)
 

наверное никак не увеличите производительность , всё зависит от того насколько быстро яндекс даст ответ на запрос . Непонятно зачем это , яндекс просто определяет есть.ли файл robots.txt ? Или что он проверяет ?
microsoft вернул код 301 :) а кроме 404 видел ещё только что.то типа не найдено чего.то подходящего

   
 
 автор: webwizard   (30.01.2008 в 09:59)   письмо автору
 
   для: EXP   (29.01.2008 в 23:05)
 

EXP, спасибо за ответ.

Эту функцию я привёл для примера, чтобы проще было понять суть моей проблемы

   
 
 автор: bronenos   (29.01.2008 в 23:13)   письмо автору
 
   для: webwizard   (29.01.2008 в 19:06)
 

Господа! По ссылке ВИРУС!
(Аваст кричит)

   
 
 автор: webwizard   (30.01.2008 в 09:57)   письмо автору
 
   для: bronenos   (29.01.2008 в 23:13)
 

bronenos, какой вирус?
У меня стоит лицензионный Касперский 7.0, который блокирует все вирусы, видно это что-то у Вас там слетело.

К тому же на хостинге есть 100% защита от вирусов, невозможно закачать файл, который содержит вирусы, поэтому не надо никого пугать, лучше бы помогли с ответом.

   
 
 автор: bronenos   (30.01.2008 в 10:24)   письмо автору
 
   для: webwizard   (30.01.2008 в 09:57)
 

Я что, шутить по-вашему решил? Вирус закричал - я и проверять не стал.
А может там js чей-то генерит iframe и туда загружает страницу опасную?

   
 
 автор: webwizard   (30.01.2008 в 12:42)   письмо автору
 
   для: bronenos   (30.01.2008 в 10:24)
 

bronenos, это ерунда, поробуйте проверьте, ничего не случиться.
Тем самым Вы проверите свой антивирусник

   
 
 автор: bronenos   (30.01.2008 в 12:48)   письмо автору
 
   для: webwizard   (30.01.2008 в 12:42)
 

VBS:Malware-gen
И не разрешается мне страницу загрузить

   
 
 автор: webwizard   (30.01.2008 в 12:55)   письмо автору
 
   для: bronenos   (30.01.2008 в 12:48)
 

bronenos, ну у ВАс одни странности.

Я свободно работаю с этой страницей, это пока тестовый вариант, но абсолютно работоспособный.

bronenos, подскажите, мне пожалуйста, как можно анализировать работу функции:

file_get_contents($url)

Это необходимо для того, чтобы не напрягать сервер на всякие глупости, вроде этого
$url = http://werwerwerwer.retretret и т.п.

просто использовать регулярные выражения для проверки url для меня не выход. Мне нужно анализировать ответ сервера file_get_contents($url)

   
 
 автор: bronenos   (30.01.2008 в 14:14)   письмо автору
 
   для: webwizard   (30.01.2008 в 12:55)
 

я бы через сокеты делал

   
 
 автор: webwizard   (30.01.2008 в 14:29)   письмо автору
 
   для: bronenos   (30.01.2008 в 14:14)
 

Хорошо, спасибо за совет, bronenos

   
 
 автор: CrazyAngel   (30.01.2008 в 14:34)   письмо автору
 
   для: webwizard   (29.01.2008 в 17:31)
 

хм... может юзать cURL? Быстрее будет


<?php
function getPage($link){
    global 
$arGetsLink;
    if(empty(
$arGetsLink[$link])):
        
$ch curl_init($link);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
$page curl_exec($ch);
        
$request curl_getinfo($ch);
        if(
curl_errno($ch)) echo '<br/>CURL Error:'.curl_error($ch).'<br/>';
        
curl_close($ch);
        
$arGetsLink[$link] = ( $request['http_code'] == 200 )?$page:false;
    endif;
    
    return 
$arGetsLink[$link];
}
?>

   
 
 автор: webwizard   (31.01.2008 в 08:41)   письмо автору
 
   для: CrazyAngel   (30.01.2008 в 14:34)
 

CrazyAngel спасибо Вам большое, Вы уже какой раз меня выручаете точными советами.

   
Rambler's Top100
вверх

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