Archive for Январь 5th, 2008

Как сделать задержку времени на PHP

В настоящее время стало не так то просто парсить (скачивать, анализировать) чужие ресурсы. Умные люди ввели бан за слишком частое обращение к их ресурсам.

Хорошо бы иметь в арсенале PHP команду, типа wait (подождать). Но, такой команды, на сколько я знаю, нет.

Выход из ситуации двух вариантный:
- выстроить очередь из запросов, а запросы выполнять по команде crone
- написать свою команду задержки времени.

Я пошел вторым путем и там где нужно вставить задержку добавляю следующую конструкцию:

require_once ('Snoopy.class.php') ;
$cmd = "http://inventory.overture.com/d/searchinventory/suggestion?mkt=us&lang=en_US&term=".$n;
$snoopy1 = new Snoopy;
$snoopy1->agent = "(compatible; MSIE 6.01; MSN 2.5; AOL 4.0; Windows Server 2003)";
$snoopy1->cookies["SessionID"] = rand(122220000,2147483647);
$snoopy1->fetch($cmd);

Код позволяет сделать задержку на 30-60 секунд.