Вопрос про функцию fopen (в PHP)
Точнее уже написал :)
Всё вроди работает, но вот охота производительнее сделать его.
Сейчас в каталоге около 6000 ссылок. Судя по данным Яндекса, обратных ссылок примерно 1400. Несоответствие маленькое :)
Вот запустил скрипт проверки сегодня. За минут 15 нашел 144 сайта и забанил их. По скорости это нормально или нет???
И вот я стал замечать, что основное время тратится на "тормоза" при открытии несуществующих страниц (ошибка 404).
Можно ли их как-то избежать?
Сейчас существование страницы я проверяю функцией fopen.
Вот код:
Код:
$file = fopen($links["back_url"],"r");
if(!$file)
{
//Сайт в баню :)
}
else
{
//Проверяем наличие кода, и если его нет, то в баню...
}
if(!$file)
{
//Сайт в баню :)
}
else
{
//Проверяем наличие кода, и если его нет, то в баню...
}
Может как-то быстрее и лучше можно существование страницы проверять?
Цитата: Fobos
Вот запустил скрипт проверки сегодня. За минут 15 нашел 144 сайта и забанил их. По скорости это нормально или нет???
5 это много или мало? ;)
Просто тут много слишком факторов от которых это зависит, однако ~10 сайтов в минуту разве так уж плохо? Хотя твой вариант я не очень одобряю в такой постановке. Не разумнее ли будет просто делать частичные запросы? Например заголовком If-Modified определять, изменилась ли страница с последнего посещения?
Хочешь сделать быстрее - пускай скачивание страниц в несколько потоков.
Если fopen тормозит с 404 страницами, используй fsockopen
HTTP/1.1 404 Not Found
Всё! после этого можно сразу закрывать сокет и не тратить время.
Также поступаем и с другими ошибками 4xx.
Буду эксперементировать.
Спасибо всем за ответы!!! ;)
Действительно, когда сервер не доступен тогда и тормоза. Ведь при ошибке 404 функция fopen не будет возвращать пустой результат, поидее, а будет страничку с этой ошибкой в переменную загонять (в моём примере).