file_get_contents() : failed to open stream: Connection timed out

Дек. 13, 2010| 21:15

Пишу сейчас один замечательный сервис, где приходится для получения информации парсить html-страницы из-за отсутсвия api. Странички получал просто file_get_contents. Через месяц тестирования парсинг начал занимать в 2-3 раза больше времени чем было. В логи писалось следующее : PHP Warning:  file_get_contents(адрес страницы): failed to open stream: Connection timed out in /var/www/parser/parser.php on line 24. Как раз в это время писал другой модуль, где работал с cURL. Поэтому не стал заморачиваться с тем, откуда растут ноги у этой ошибки и сделал вместо :

$data file_get_contents('адрес страницы');

стал использовать cURL:

$ch curl_init();
curl_setopt($chCURLOPT_URL'адрес страницы');
curl_setopt($chCURLOPT_HEADERfalse);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_CONNECTTIMEOUT5);
$data curl_exec($ch);   
curl_close($ch);

Работать стало даже быстрее


Метки: php
Имя :
Сайт или эл. почта :
Сообщение :
Код подтверждения :
 
  • Дмитрий, Ноя. 26, 2015| 13:58
    благодарю за совет. помогло! кучу сайтов перерыл, то не нашёл ничего.
    reply to this
  • Дмитрий, Апр. 28, 2017| 15:43
    Огромное спасибо!
    Реально заменил fopen() на этот кусок и всё заработало!
    Без перенастроек mysql max_allowed_packet и каких либо других вмешательств!!

    Ещё раз Спасибо!
    reply to this