2014-12-10 3 views
0

У меня есть этот код, чтобы получить код, чтобы получить Geolocation:php file_get_contents return bool (false)? on gelugin.net/json

Обратите внимание, что это, скорее всего, первый раз, когда я вижу эту ошибку. Я не могу сказать, где Geo Services находятся в автономном режиме или что происходит на самом деле.

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';

Что может быть проблема ??

спасибо !!

+2

Удалите '@', и вы должны увидеть. Также используйте 'error_reporting (E_ALL); ini_set ('display_errors', '1'); ' – AbraCadaver

+0

По-прежнему ... просто пробовал сейчас ... Посмотреть изображение http://ctrlv.in/472054 –

+0

Избавьтесь от' try'/'catch' временно , – AbraCadaver

ответ

2

Во-первых, вы не должны использовать @, если это возможно. Это подавляет ошибки, но если вы получаете ошибки, то вам нужно знать об этом, поскольку это означает, что что-то не так.

Проблема, связанная с опцией в php.ini. проверить allow_url_fopen

PHP кажется, запретить открытие удаленных файлов (URL,), если вы явно не включены эту функцию, поэтому вы всегда получаете false вернулись ...

Я надеюсь, что помогает!

+0

Super .... Working Now ... Спасибо миллион!. –

Смежные вопросы