php实现根据不同国家显示不同语言版本的代码
方法1,通过ip去定位,需要用到第三方的接口进行数据数据查询
// 获取访问者的IP function getIP() { if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { $realip = $_SERVER['REMOTE_ADDR']; } } else { if (getenv("HTTP_X_FORWARDED_FOR")) { $realip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); } } return $realip; } $ip = getIP(); // 通过获得的IP去和第三方接口实现对接,返回的是json格式的数据,转化格式,可以得到一个完整的数组,下面是取country这个键的值来判断,可以是country_id。header到你想跳转的语言版本的url。 $res0 = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip"); $res0 = json_decode($res0, true); //echo $res0['data']['country'];exit; if ($res0['data']['country'] == '美国' || $res0['data']['country'] == '英国') { header("location:/en"); }else if ($res0['data']['country'] == '德国') { header("location:/dw"); }else{ header("location:/"); }
方法2:通过浏览器的meta进而判断显示哪种语言
用到PHP的$_SERVER['HTTP_ACCEPT_LANGUAGE']这个函数,获取当前浏览器打开的网站的meta值,进而切割字符串做对比,然后header到指定的网站。
$lange = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)); if($lange=='en') { header("location:/en"); }else if ($lange == 'de') { header("location:/dw"); }
本文来源:功夫码(gongfuma.com)
声明:本文系功夫码原创稿件,版权属[功夫码 gongfuma.com]所有。
未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:功夫码",违者将依法追究责任。