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