让你的网站首页自动选择语言转跳


Posted in PHP onDecember 06, 2006

大家都在用google,你用中文系统打开google的首页,打开的自然是中文首页,而不会是其他语言。因为google会自动判断用户系统使用的首选语言是什么。 
怎样才能做到像google那样呢,其实很简单, 
在浏览器发给web服务器的 HTTP Headers Information 中包含了这样一个信息 Accept-Language 
这个信息就是,浏览器中 工具->Internet选项->常规 下的 语言, 它就是用来设置浏览器可接受的语言首选项的, 它可以是多种可接受语言的优先排序列。 

下面以PHP为例, 
用户可接受的语言信息,放在$_SERVER['HTTP_ACCEPT_LANGUAGE']里, 
变量信息是类似这样的 "zh-cn", 如果是多语言列,是类似 "zh-cn,en;q=0.8,ko;q=0.5,zh-tw;q=0.3" 
下面的问题可以迎刃而解了。 

程序代码 

<?php 
error_reporting(E_ALL ^ E_NOTICE); 

// 分析 HTTP_ACCEPT_LANGUAGE 的属性 
// 这里只取第一语言设置 (其他可根据需要增强功能,这里只做简单的方法演示) 

preg_match('/^([a-z-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); 
$lang = $matches[1]; 

switch ($lang) { 
case 'zh-cn' : 
header('Location: http://cn.example.com/');  
break; 
case 'zh-tw' : 
header('Location: http://tw.example.com/');  
break; 
case 'ko' : 
header('Location: http://ko.example.com/');  
break; 
default:  
header('Location: http://en.example.com/');  
break; 

?>

PHP 相关文章推荐
我的论坛源代码(三)
Oct 09 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
PHP中设置时区,记录日志文件的实现代码
Jan 07 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php中Snoopy类用法实例
Jun 19 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
laravel orm 关联条件查询代码
Oct 21 PHP
PHP经典的给图片加水印程序
Dec 06 #PHP
echo, print, printf 和 sprintf 区别
Dec 06 #PHP
PHP数字格式化
Dec 06 #PHP
用缓存实现静态页面的测试
Dec 06 #PHP
一些PHP写的小东西
Dec 06 #PHP
关于时间计算的结总
Dec 06 #PHP
一段防盗连的PHP代码
Dec 06 #PHP
You might like
PHP Array交叉表实现代码
2010/08/05 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
JS常用知识点整理
2017/01/21 Javascript
Node.js的特点详解
2017/02/03 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中的列表推导浅析
2014/04/26 Python
Python使用Supervisor来管理进程的方法
2015/05/28 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
Django中Forms的使用代码解析
2018/02/10 Python
Django中的ajax请求
2018/10/19 Python
在python中pandas的series合并方法
2018/11/12 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
python打印异常信息的两种实现方式
2019/12/24 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
好的演讲稿开场白
2013/12/30 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
JS实现数组去重的11种方法总结
2022/04/04 Javascript
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python