使用PHP echo的IP Geocode

use*_*175 2 php forms ip input geocode

我正在尝试以表单输入值显示用户国家/地区(基于他们的IP).

这是我到目前为止的代码..

<input style="display:block" type="text" name="country" id="country" value="<?php               
$pageContent = file_get_contents('http://freegeoip.net/json/echo $_SERVER['REMOTE_ADDR']');
$parsedJson  = json_decode($pageContent);
echo $parsedJson->country_name; ?>" />
Run Code Online (Sandbox Code Playgroud)

我正在使用PHP JSON-decode从"http://freegeoip.net/json/(IP ADDRESS)"获取数据.

该网站对IP地址进行地理编码并返回国家/地区名称.

我想要做的是能够将用户IP地址替换为该网址,然后返回用户的国家/地区名称.我能想到的最好方法是使用

<?php echo $_SERVER['REMOTE_ADDR']; ?> 
Run Code Online (Sandbox Code Playgroud)

但当我把它放进去时,我得到一个服务器错误.

我该怎么做呢?

Jer*_*oen 11

$pageContent = file_get_contents('http://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']);
Run Code Online (Sandbox Code Playgroud)

你不能echo在一个函数中使用.相反,您应该使用连接运算符.

此外,更好的代码将是这样的:

<?php               
$pageContent = file_get_contents('http://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']);
$parsedJson  = json_decode($pageContent);
?>
<input style="display:block" type="text" name="country" id="country" value="<?php echo htmlspecialchars($parsedJson->country_name); ?>" />
Run Code Online (Sandbox Code Playgroud)