Как сделать задержку времени на 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 секунд.