Здравствуйте друзья! Пишу значит я некий парсер, в бд хранятся записи с урлами страниц (страниц порядка 950), откуда брать контент, но столкнулся со следующей проблемой. Описываю. Общий метод, вызывающий закрытые методы, с помощью которых происходит парсинг Код (Text): public function parseProducts(){ $this->getExistProductPageArray() ->parseProductListPage($this->link_array_product_page); } метод getExistProductPageArray Код (Text): private function getExistProductPageArray() { $link_array_product_page = DB::query("SELECT id, old_uri FROM categories WHERE existproduct = 1"); $this->link_array_product_page = $link_array_product_page; print_r($this->link_array_product_page); return $this; } Тут просто извлекаем массив с урлами. Далее начинаем получать контент с этих урлов, тут собственно и кроется проблема Кусок кода метода (весь большой уж больно): Код (Text): private function parseProductListPage($url_array) { //if($url_array) {print_r($url_array); die("Хватит");} $base_url = $this->base_url.'/shop/'; if(count($url_array)) { foreach($url_array as $key => $value) { $contentpage = file_get_contents($base_url . $value['old_uri']); .... } } } После выполнения данного кода, происходит подвисание, и страница грузится бесконечно. Массив из бд приходит корректный, но вот особенность такая наблюдается. В методе getExistProductPageArray я делал print_r(); массива, так вот если пытаться забрать код со страницы, то массив выводит не полностью (скрин прикрепил) , останавливается на 899 элементе и подвисает (бесконечно загружается, браузер не висит), но если убрать $contentpage = file_get_contents($base_url . $value['old_uri']); то массив отрисовывается нормально. Честно даже ума не приложу на что грешить тут можно. Прошу помощи. Спасибо за внимание.
Разберись как делать flush http://php.ru/manual/function.flush.html чтобы скрипт не ждал всех вычислений для отображения информации. Парси через curl и найди отладкой где подвисает.