2009-03-06 7 views

答えて

4

まず、訪問者のIPアドレスを見つける必要があります。 $ _SERVER ['REMOTE_ADDR']グローバル変数に格納されます。その後、このIPをIPのデータベースと照らし合わせて国のマッピングと照合して、IPの国コードを取得することができます。

この方法は100%正確ではありませんが、ほとんどの用途で「十分」であり、より重要なことには高速です。トラフィックが多いと思われる場合は、国コードをクッキーにキャッシュして、繰り返しルックアップを避けることをお勧めします。

そのようなマッピングは、ここで見つけることができます:リンクが壊れているように見えること http://www.phpclasses.org/browse/package/2363.html

3
+0

:IPを取り、バンドルされたマッピングファイルを使用して国コードを返し http://software77.net/cgi-bin/ip-country/geo-ip.pl

A PHPクラス? –

+0

それは錯覚です!そのように見えるかもしれませんが、実際は...うーん...私のために働く。ちょうど編集を行った - まだ壊れて? – Smashery

+0

2番目のリンクが空白のページに移動します。奇妙な –

1

あなたが本当にユーザーの位置をしたい場合は、キーワードがgeolocationです。

ただし、あなたの目的には、$_SERVER["ACCEPT_LANGUAGE"]をチェックするだけで済みます。 syntaxはちょっと複雑です。幸運なことに、ほぼすべてのクライアントはすぐに何をすべきかを実行し、優先順位の高い場所を注文します。したがって、あなたがサポートするすべてのロケール$lang( "en-us"など)に対してstripos($_SERVER["ACCEPT_LANGUAGE"], $lang)を計算し、falseを返す最低の廃棄ロケールを取得します。

関連する問題