2

フォームの入力値に (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; ?>" />

「http://freegeoip.net/json/(IP ADDRESS)」からデータを取得するために PHP JSON デコードを使用しています。

その Web サイトは IP アドレスをジオコーディングし、国名を返します。

私がやりたいことは、ユーザーの IP アドレスをその Web アドレスに置き換えることができるようにすることです。これにより、ユーザーの国名が返されます。私が考えることができる最良の方法は、

<?php echo $_SERVER['REMOTE_ADDR']; ?> 

しかし、それを入れると、サーバーエラーが発生します。

どうすればこれを行うことができますか?

4

4 に答える 4

11
$pageContent = file_get_contents('http://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']);

関数内では使用できません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); ?>" />
于 2012-05-29T19:54:44.343 に答える
2
$pageContent = file_get_contents('http://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']);

文字列パラメーターにエコーする必要はありません...と連結するだけ.です。

于 2012-05-29T19:55:03.003 に答える