Hi, All!
Возникла проблема с чтением содержимого файла "http://api.erepublik.com/v1/feeds/citizens/1772208".
Браузер FireFox 3.5.3 прекрасно выводит содержимое.
А вот через PHP ничего не получается.
Пытаюсь это сделать c помощью CURL функций:
<?php
$s_url = "http://api.erepublik.com/v1/feeds/citizens/1772208";
$s_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, $s_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $s_url);
$s_Source = (curl_exec($ch));
echo "Source = $s_Source<br>";
curl_close($ch);
?>
В ответе: "Source = |" Т.е. пустота.
Скажите пожалуйста, где ошибка?
1. Ratibor Redoran - 04 Ноября, 2009 - 13:46:58 - перейти к сообщению
2. EuGen - 04 Ноября, 2009 - 13:52:21 - перейти к сообщению
3. Ratibor Redoran - 04 Ноября, 2009 - 14:13:57 - перейти к сообщению
EuGen пишет:
Попробовал.
Написал такой скрипт:
<?php
$stream = file_get_contents("http://api.erepublik.com/v1/feeds/citizens/1772208");
print( "Connection successful: $stream");
?>
Получил ответ:
"Warning: file_get_contents(http://api.erepublik.com/v1/feeds/citizens/1772208) [function.file-get-contents]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in Y:\home\localhost\www\php\file_get_contents.php on line 3
Fatal error: Maximum execution time of 30 seconds exceeded in Y:\home\localhost\www\php\file_get_contents.php on line 3"
Может что-то мешает выйти запросу php скрипта за пределы машины?
4. valenok - 04 Ноября, 2009 - 14:17:44 - перейти к сообщению
фаерволл может. А К другим url пробовали запрос отправлять ?
5. Ratibor Redoran - 04 Ноября, 2009 - 15:05:43 - перейти к сообщению
valenok пишет:
фаерволл может. А К другим url пробовали запрос отправлять ?
Ну, вот попробовал к этому сайту:
$stream = file_get_contents('http://bugs.php.net');
тот же результат.
Но ведь фича в том, что браузер FireFox, содержимое файла показывает.
Значит, ИМХО, дело не в файрволе.
А к локальному сайту запрос проходит:
$stream = file_get_contents('http://192.168.10.253/mnlz/index.html');
Выдаёт его содержимое на экран.
Что делать?
6. EuGen - 04 Ноября, 2009 - 15:42:55 - перейти к сообщению
Возможно, дело в каком-либо локальном прокси-сервере.
7. Ratibor Redoran - 04 Ноября, 2009 - 17:07:31 - перейти к сообщению
EuGen пишет:
Возможно, дело в каком-либо локальном прокси-сервере.
Да, так и есть. А подскажите, как его обойти? Т.е. как сформировать запрос, через fsockopen, например, чтобы прокси сервер понял, что нужно передать запрос дальше?
8. EuGen - 04 Ноября, 2009 - 17:13:00 - перейти к сообщению
CURLOPT_PROXY
как опция в curl_setopt, возможно, поможет.
как опция в curl_setopt, возможно, поможет.