Нужно написать механизм, который проверял бы ресурсы

captor

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

PHP:
foreach ($urls as $value) {
    $html = file_get_contents($value);
    if(strpos($html,$urlcode)) echo $value;
  }
массив $urls - страницы, где должна быть ссылка.
$urlcode - код моей ссылки.

вот хотел бы спросить, как мне оптимизировать эту обработку, если сайтов уже больше 300, и сервер уже отвечает
Fatal error: Maximum execution time of 30 seconds exceeded
Спасибо.!
 

Oddinn

Новичок
Я бы вызывал этот скрипт из консоли, а не через веб-сервер. Если на хостинге есть доступ к крону, то просто прописать туда вызов интерпретатора PHP с этим скриптом. Или, как вариант, запускать его с локального компьютера, если интернет достаточно быстрый.
 

kruglov

Новичок
Можно завести базу, где писать сайт, дату последней проверки и результат. При вызове случайным образом проверять 10 штук самых давно не проверявшихся. И все это в крон.
 

captor

Новичок
тему разлипили, чисто случайно нашел, поэтому долго не отвечал. извиняюсь.

Фанат
жаль.

Oddinn
с cron не все знакомы. в том числе и я плохо знаю, что да как, но принцип представляю.

Или, как вариант, запускать его с локального компьютера, если интернет достаточно быстрый.
пробовал - не помогает :)

Можно завести базу, где писать сайт, дату последней проверки и результат. При вызове случайным образом проверять 10 штук самых давно не проверявшихся.
это мысль только без crona наверно буду делать.
 

captor

Новичок
Oddinn
прости туплю :)

но нужно именно на хостинге, где стандарт 30 сек. :(
 

Oddinn

Новичок
Автор оригинала: captor
Oddinn
прости туплю :)

но нужно именно на хостинге, где стандарт 30 сек. :(
Тогда разбивай список сайтов и за один вызов обрабатывай не более N сайтов, где N определяется опытным путем, чтобы время выполнения скрипта было минимальным. Думаю, что 5 - 10 сайтов, но все зхависит от конкретной реализации и необходимой оперативности. В любом случае, лучше вынести эту работу в cron.
 

tashkentchi

Новичок
captor
Если обязательно нужно проверить все адреса, то можно попробовать такой вариант:
1. запускаешь скрипт в невидимом iframe и проверяшь не все 300 страниц, а порцию в 50 штук.
2. выводишь javascript, который а) в родительскую страницу добавляет список адресов и b) перегружает скрипт для обработки очередных 50-и адресов
 

tashkentchi

Новичок
Много? Ни разу не слышал, чтоб кто-то жаловался на недостаток ресурсов, которые жрет iframe.
 

captor

Новичок
решил все-таки с crona начать :)

Хотел еще спросить, а хостер не может запретить мне польоваться им? ведь нагрузка наверно большая идет, чтобы просмотреть 1000 url и более.

Bremen
я тоже что-то первый раз слышу, что iframe вообще жрет что-то.
 

Oddinn

Новичок
Автор оригинала: captor
решил все-таки с crona начать :)

Хотел еще спросить, а хостер не может запретить мне польоваться им? ведь нагрузка наверно большая идет, чтобы просмотреть 1000 url и более.
Я думаю, об этом лучше спросить хостера.

Bremen
я тоже что-то первый раз слышу, что iframe вообще жрет что-то.
Вроде как была раньше проблема в Internet Explorer, но она давно решена. Да и причем здесь все-таки iframe?
 
Сверху