我想在index.php中自动选择语言。当用户来自哥伦比亚时,他被重定向到index_columbia.html和其他国家/地区的index_english.html。
如何使用PHP实现此目的?
答案 0 :(得分:0)
您可以通过IP地址进行检查(有网络服务)。例如:http://freegeoip.net/
您还可以使用浏览器发送的accept-language标头。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4可以从$_SERVER
变量中检索此内容。
答案 1 :(得分:0)
浏览器发送的语言信息是服务器保留变量。好吧,这个解决方案不是基于访问者的位置,而是基于浏览器的语言设置似乎更好。如果访客来自哥伦比亚或法国,如果他使用英语作为语言无关紧要,最好向他展示网站的英文版本。
您可以像这样使用$_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;
}
?>
答案 2 :(得分:0)
您可以按IP地址使用国家/地区查找。
可以在http://www.phpandstuff.com/articles/geoip-country-lookup-with-php找到执行此操作的课程。
答案 3 :(得分:0)
您可以使用我的代码:
$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';