我正在嘗試使用geoplugin在PHP中獲取用戶的位置和城市。PHP反序列化偏移量的錯誤?
然而,當我運行這段代碼,我得到了以下錯誤:
Notice: unserialize(): Error at offset 0 of 172 bytes in ndex.php on line 21
這是我的全部代碼:
$user_ip = getenv('REMOTE_ADDR');
echo $user_ip;
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=".$user_ip.""));
$city = $geo["geoplugin_city"];
$region = $geo["geoplugin_regionName"];
$country = $geo["geoplugin_countryName"];
echo "City: ".$city."<br>";
echo "Region: ".$region."<br>";
echo "Country: ".$country."<br>";
和在錯誤中所示的線21是這樣的:
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=".$user_ip.""));
我已經使用其他服務器上的代碼和工作得很好,但在新服務器上,我得到臨屋t錯誤,我不知道爲什麼。
可能有人請告知這個問題?
任何幫助,將不勝感激。
編輯:
我修改了代碼以下,仍然得到了同樣的錯誤:
$user_ip = getenv('REMOTE_ADDR');
$geo = file_get_contents("http://www.geoplugin.net/php.gp?ip=".$user_ip."");
$string = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $geo);
$geo = unserialize($string);
$city = $geo["geoplugin_city"];
$region = $geo["geoplugin_regionName"];
$country = $geo["geoplugin_countryName"];
echo "City: ".$city."<br>";
echo "Region: ".$region."<br>";
echo "Country: ".$country."<br>";
你檢查了什麼文件獲取內容返回?可能是服務器問題 –
一切都可以與您的代碼。我得到充分的迴應:https://www.dropbox.com/s/n2xzt01isbpdcn8/Screenshot%202016-01-07%2014.03.28.png?dl=0 – CroiOS
@AndreyMussatov,我做了'var_dump($ geo)'和我在頁面上看到:'bool(false)' – rooz