php file_get_contents返回bool(false)?在geoplugin.net/json上

时间:2014-12-10 13:41:33

标签: php json

我已获得此代码以获取代码以获取地理位置:

请注意,这很可能是我第一次看到这个错误。我不知道地理服务在哪里离线或者究竟发生了什么。

try{
$json = @file_get_contents('http://www.geoplugin.net/json.gp?ip='.getIp());


if($json === false){

    throw new Exception('You are not connected to the internet');


}else{
echo 'Great';
}
}catch( Exception $e){

}

function getIp(){

$ip = "";

    if (!empty($_SERVER["HTTP_CLIENT_IP"]))
{
//check for ip from share internet
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
// Check for the Proxy User
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
$ip = $_SERVER["REMOTE_ADDR"];
}

var_dump($ip);
// This will print user's real IP Address
// does't matter if user using proxy or not.
return $ip;
    }

继续抛出'You are not connected to the internet';

可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,如果可能,你不应该使用@。这可以解决错误,但是如果你得到错误,那么你需要了解它,因为它意味着某些事情是对的....

你遇到的问题;与php.ini中的选项有关。看看allow_url_fopen

除非您明确启用了该功能,否则PHP似乎不允许打开远程文件(URL' s),因此您总是会返回false ...

我希望有所帮助!