file_get_contents不能与externel站点一起使用

时间:2015-08-27 23:05:59

标签: php xml file-get-contents steam-web-api

我已经使用这个超过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;

编辑:

如果我使用内部网址,则会加载数据,但是当我尝试使用任何使用http协议的网址时,只会启动file_get_contents failed错误,即使网址是我网站的网址也是如此。如果没有其他解决方案,我愿意使用cURL。我还考虑制作一个加载数据并将其保存在服务器文件中的PHP脚本(然后每隔10分钟运行一次cronjob),但无论如何都会使用file_get_contents ...

1 个答案:

答案 0 :(得分:0)

function setUpObj (fns) { class MasterObj { } Object.assign( MasterObj.prototype, fns ); return new MasterObj() } let master = setUpObj({ square, add, divide }) master.square(1,2) 返回一个字符串,所以请改用simplexml_load_string。

此代码适合我,经过测试。

file_get_content