Я использую это более 2 месяцев и работал нормально, пока несколько дней назад не появилось сообщение об ошибке. Я использую Steam API, чтобы получить некоторую информацию об игроках.
$url = "http://steamcommunity.com/id/CGaKeepoN/?xml=1";
Страница не пустая, на ней есть xml-документ. Итак, я сначала подумал, что мой хост выключил allow_url_fopen
, а они нет (я спросил их).
Я также пытался использовать error_reporting(E_ALL); ini_set('display_errors', 1);
И вот что я получаю:
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "" on line 6
Notice: Trying to get property of non-object on line 7
Теперь я использую это: $xml = simplexml_load_file(file_get_contents($url));
И я хотел бы продолжать использовать его, потому что установка cURL сейчас не вариант. Знаете ли вы лучший (или работающий) способ сделать это? Или как исправить эту ошибку?
Мой полный код:
error_reporting(E_ALL);
ini_set('display_errors', 1);
//$url = "http://steamcommunity.com/id/CGaKeepoN/?xml=1";
$url = "xml.txt";
ini_set('allow_url_fopen ','ON');
$xml = file_get_contents($url) or die ("file_get_contents failed");
$xml = simplexml_load_string($xml) or die ("simplexml_load_string failed");
$profilepic = $xml->avatarIcon;
$pic = $xml->avatarFull;
$steamID = $xml->steamID;
$lastonline = $xml->stateMessage;
echo $xml;
echo $profilepic;
echo $pic;
echo $steamID;
echo $lastonline;
РЕДАКТИРОВАТЬ:
Если я использую внутренний URL-адрес, он загружает данные, но когда я пытаюсь использовать любой URL-адрес, использующий протокол http, просто запускает ошибку file_get_contents failed
, даже если URL-адрес принадлежит моему веб-сайту. Я готов использовать cURL, если нет другого решения. Я также подумал о создании php-скрипта, который загружает данные и сохраняет их в файле на сервере (а затем запускает cronjob каждые 10 минут), но он все равно будет использовать file_get_contents
...
curl -V
/wget -S
для отладки из командной строки, затемget_headers()
из PHP и этого сервера, чтобы узнать, запрещены ли вам опросы потокового API. - person mario   schedule 28.08.2015