php实现首页自动选择语言转跳

很多网站在首页上做一些链接,让用户来选择将要访问的各自的语言页面,让中国人选择“中文”,韩国人选择“朝鲜语”,等等。那么能不能做程序来自动帮助选择呢?

答案是肯定的,大家都在用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: [url]http://cn.example.com/[/url]');

break;

case 'zh-tw' :

header('Location: [url]http://tw.example.com/[/url]');

break;

case 'ko' :

header('Location: [url]http://ko.example.com/[/url]');

break;

default:

header('Location: [url]http://en.example.com/[/url]');

break;

}

?>

(0)

相关推荐

  • PHP获取MSN好友列表类的实现代码

    复制代码 代码如下: <?phperror_reporting(7);class msn{    private $startcomm = 0;    private $username = '';    private $password = '';    private $commend = '';    private $domain = '';    private $socket = '';    private $challenge = '';    private $status

  • PHP与javascript对多项选择的处理

    我们经常要给用户作出多项选择进行处理,例如允许用户对列表项选择多项后删除选定项等.今天举个例子说明PHP和JavaScript分别是怎样处理多项选择的.今天我们做的是一个投票系统,对MySQL数据库itemtable表里的项目进行投票,且每个别IP能且只能投两票. 表itemtable是通过以下MySQL语句建立的: CREATE TABLE `itemtable` (`id` TINYINT( 4 ) NOT NULL AUTO_INCREMENT,`name` VARCHAR( 50 ) N

  • php使用数组填充下拉列表框的方法

    本文实例讲述了php使用数组填充下拉列表框的方法.分享给大家供大家参考.具体实现方法如下: <?php $data = array( (object)array("titulo"=>"Ford", "valor"=>"opcion1"), (object)array("titulo"=>"Peugeot", "valor"=>"

  • php从数据库查询结果生成树形列表的方法

    本文实例讲述了php从数据库查询结果生成树形列表的方法.分享给大家供大家参考.具体分析如下: 本代码可以从数据库读取数据生成一个类似于windows的资源管理器的树形列表 <?php /* Here are the database definitions (for Solid) that i use in this code. * It should not be hard to adapt it to another database. */ /* CREATE TABLE dirent_t

  • php输出全球各个时区列表的方法

    本文实例讲述了php输出全球各个时区列表的方法.分享给大家供大家参考.具体实现方法如下: <?php $timezones = array ( '(GMT-12:00) International Date Line West' => 'Pacific/Wake', '(GMT-11:00) Midway Island' => 'Pacific/Apia', '(GMT-11:00) Samoa' => 'Pacific/Apia', '(GMT-10:00) Hawaii' =&

  • php select,radio和checkbox默认选择的实现方法

    这是扩展yibing的select默认选择的实现方法 复制代码 代码如下: <select name="wuyeleixing" size="1"> <option <?php if($myrow[wuyeleixing]==1) echo("selected");?> value="1">住宅</option> <option <?php if($myrow[wuy

  • php简单实现无限分类树形列表的方法

    本文实例讲述了php简单实现无限分类树形列表的方法.分享给大家供大家参考.具体如下: $items = array( 1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'), 2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'), 3 => array('id' => 3, 'pid' => 1, 'name' => '南昌市'), 4 =

  • php实现的美国50个州选择列表实例

    本文实例讲述了php实现的美国50个州选择列表.分享给大家供大家参考.具体如下: 这里展示的是php生成的美国50个州的选择列表,自动选择当前州 <select name="state" id="state"> <option value="AL" <?PHP if($state=="AL") echo "selected";?>>Alabama</option&g

  • php简单获取目录列表的方法

    本文实例讲述了php简单获取目录列表的方法.分享给大家供大家参考.具体实现方法如下: <?php function list_directory_content($dir){ if(is_dir($dir)){ if($handle = opendir($dir)){ while(($file = readdir($handle)) !== false){ if($file != '.' && $file != '..' && $file != '.htaccess'

  • PHP自动选择 连接本地还是远程数据库

    Mysql.class.php 文件见 http://www.jb51.net/article/25496.htm 复制代码 代码如下: <?php // 包含Mysql操作类 include_once 'Mysql.class.php'; // 本地mysql数据 $mysql_local_data = array('db_host'=>'localhost', 'db_user'=>'root', 'db_pass'=>'root', 'db_name'=>'test')

随机推荐