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


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 相关文章推荐
PHP在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
第十一节--重载
Nov 16 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
php session应用实例 登录验证
Mar 16 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
php搜索文件程序分享
Oct 30 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
PHP getDocNamespaces()函数讲解
Feb 03 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
laravel 数据验证规则详解
Oct 23 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 heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
ExtJS 入门
2010/10/29 Javascript
JS继承 笔记
2011/07/13 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
python数据处理实战(必看篇)
2017/06/11 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
彻底解决Python包下载慢问题
2020/11/15 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
机关门卫制度
2014/02/01 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
综合实践活动报告
2015/02/05 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python