index.php で言語を自動選択したいと考えています。ユーザーがコロンビア出身の場合、彼は index_columbia.html にリダイレクトされ、他の国では index_english.html にリダイレクトされます。
PHPでこれを作るにはどうすればよいですか?
IP アドレスによる国検索を使用できます。
これを行うクラスはhttp://www.phpandstuff.com/articles/geoip-country-lookup-with-phpにあります。
IPアドレスで確認できます(Webサービスがあります)。例: http://freegeoip.net/
また、ブラウザから送信される accept-language ヘッダーを使用することもできます。http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4$_SERVER
これは、変数から取得できます。
ブラウザから送信される言語情報は、サーバー予約変数を使用しています。さて、この解決策は、訪問者の場所に基づいているのではなく、ブラウザの言語設定に基づいています。訪問者がコロンビア出身かフランス出身かに関係なく、英語を使用している場合は、ウェブサイトの英語版を表示することをお勧めします。
次のように使用できます$_SERVER['HTTP_ACCEPT_LANGUAGE']
:-
<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "fr":
include("index_fr.php");
break;
case "it":
include("index_it.php");
break;
case "en":
include("index_en.php");
break;
default:
include("index_en.php");
break;
}
?>
私のコードを使用できます:
$langs = array('en','fr','de');
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (!in_array($lang, array_keys($langs))) $forward = 'index_'.$lang.'.html';
else $forward = 'index_en.html';