首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [原创]php实现首页选择语言自动跳转  


  作者:less
  注册时间:2005-04-08
  主题/回复:12/20
  积分:480
  等级:★★☆(五级)
  称号:略有小成

  whjhjm@gmail.com..
  未提供
  www.

 

 发表:2005-04-27 17:11:17 阅读 1819 次 回复 1 次 得分1  |   字号 字色
[原创]php实现首页选择语言自动跳转
这里学习气氛很好,好多人热心解答我们这些菜菜的问题,特转些PHP实用技巧,大家共赏!
---------------------------------------

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: 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;
}

?>
 
 1#楼  
 
  回复人:lather
  注册时间:2005-04-21
  主题/回复:37/63
  积分:1079
  等级:★★★☆(七级)
  称号:论坛贤士

   
 1#楼 发表于2005-04-27 18:01:15  评分:1 

挺好,header location 用在swich里面
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.005sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版