2014-09-19 3 views
0

У меня есть проблема при использовании file_get_contentsPHP file_get_contents не работает на сервере

Мне нужно получить содержимое из URL

$header=array(); 
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
$header[] = "Cache-Control: max-age=0"; 
$header[] = "Connection: keep-alive"; 
$header[] = "Keep-Alive: 300"; 
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
$header[] = "Accept-Language: en-us,en;q=0.5"; 
$header[] = "Pragma: "; 
$opts = array(
       'http'=>array(
          'method'=>"GET", 
          'header'=>implode('\r\n',$header), 
          'proxy' => 'proxy_address', 
          'request_fulluri' => True 
          ) 
        ); 

$context = stream_context_create($opts); 
$file = file_get_contents($url, false, $context); 
echo $file; 

сообщение об ошибке говорит: file_get_contents(my url) [function.file-get-contents]: failed to open stream: Connection timed out

Я попробовал curl запрос , но получить тот же ответ. Как я могу решить эту проблему?

+0

Ваш хостинг компания может блокировать исходящие запросы, проверить с ними. – Maerlyn

+0

Вы пробовали код на разных хостах? Это выглядит хорошо, только я могу думать о том, что ваш хозяин/внешний сайт не отвечает. – JakeSteam

+0

С другими сайтами код работал правильно, я думаю, что сайт, который я пытаюсь разобрать, блокировал мои запросы (почему я добавляю прокси), но это не помогает :( – Kandrat

ответ

0

пытаются добавить настройки тайм-аута для ваших ОПТС:

$opts = array(
       'http'=>array(
          'method'=>"GET", 
          'header'=>implode('\r\n',$header), 
          'proxy' => 'proxy_address', 
          'request_fulluri' => True 
          ), 
       'timeout' => 60 
); 

Этот пример устанавливает тайм-аут соединения 60 секунд

Смежные вопросы