我确定这与其他问题类似,但我尝试过这些解决方案,并且无法使其发挥作用。
我试图获取IP地址的位置,解码json并打印它。我实际上打算将它放入数据库,但我甚至不确定为什么我不能在屏幕上打印任何内容。
$ip = $_SERVER['REMOTE_ADDR'];
$json = file_get_contents("http://api.hostip.info/get_json.php?ip=".$ip);
$local = json_decode($json,true);
感谢。
答案 0 :(得分:1)
一个。当你的意思是I cant get anything to print to the screen.
肯定你可以获得任何东西,因为你没有输出任何东西到屏幕上。
error_reporting(E_ALL);
$ip = $_SERVER['REMOTE_ADDR'];
$json = file_get_contents("http://api.hostip.info/get_json.php?ip=".$ip);
$local = json_decode($json,true);
echo $local['city'] ;
print $local['country_name'] ;
var_dump($local);
B中。这也意味着allow_url_include set to Off
不允许file_get_contents
加载来自其他域的信息
答案 1 :(得分:0)
首先,您提供的代码实际上并没有打印任何内容,这可以解释为什么您会出现空白屏幕。我假设你之后在程序中做了类似echo $local;
的事情,但如果没有,那就是问题。
假设不是问题......
两种可能性:
file_get_contents()
正在返回错误。
json_decode()
正在返回错误。
首先,您应该在代码中添加一些额外的错误捕获,以确定哪个是问题。
如果您将PHP设置为不显示错误,请考虑将其打开,以便您可以看到生成的任何错误。或者查看服务器日志以查看错误。
如果网址无效, file_get_contents()
可能会失败。如果您的PHP安装设置为不允许通过文件处理函数的URL,它也可能会失败。如果是这种情况,您需要更改php.ini设置。如果你不能这样做,你将不得不通过不同的方法加载文件(例如Curl)。
json_decode()
可能会失败。你应该检查URL的输出以确认它看起来是正确的,并检查它像firebug,以确保它是有效的。
希望有所帮助。