[基础课8] 通过 '浏览器语言' 自动转换到不同网页

[复制链接]
查看: 2960   回复: 6
发表于 2008-6-18 16:10:45 | 显示全部楼层 |阅读模式
这个是简单的实例,这样的例子很常见,也非常有用。

比如你有几个网页,不同的语言,你完全可以根据客户端的浏览器的语言让网站自己来切换的相应的语言页面。

比如你有一些流量,而你只想在使用英文语言浏览器的人才显示你的广告。

比如你只想在特定的语言网页下面干一些事,无论好事还是坏事。

这样的实例很有用,只要你想得到,就能充分利用。

现在咱们就 Getting Start

分析:我们写程序,不是一鼓作气,一步到位的,比如我们要写这样的一个程序,我们一定要动脑筋先想这个程序怎么实现,需要哪些功能。

我们要做的是:通过 '浏览器语言' 自动转换到不同网页

1. 我们要添加对各种浏览器语言的判断
2. 自动跳转到一个网页的方法

很多人都知道什么zh-cn,en-us这些,其实这些就是浏览器语言的显著标识符号
如果你的浏览器语言为简体中文,你访问的网站会检测到你的浏览器语言标识符为zh-cn
如果你的浏览器语言为美国英语,你访问的网站会检测到你的浏览器语言标识符为en-us
....

如果你对浏览器的语言知识不懂,你自己该去搜索引擎补习一下

我们来写对各种浏览器语言的判断的功能

写法:

<?
switch ($_SERVER['HTTP_ACCEPT_LANGUAGE']) {
    case 'zh-cn':
        break;
    case 'zh-tw':
        break;
    case 'en-us':
        break;
    default:
}
?>

switch我们前面的课讲了,就是根据一个值来判断,switch里面的default的意思是,如果其他的case都不成立,就会执行default下面的语句,$_SERVER['HTTP_ACCEPT_LANGUAGE']是一个系统自带的变量,详见PHP手册->变量->预定义变量,既然PHP可以自己带自己的函数比如echo,switch,那么为什么PHP不能带自己的变量呢。不要把$_SERVER这样的变量想的太复杂的,总之你记住,这个变量可以得到浏览器的语言标识符。

switch通过$_SERVER['HTTP_ACCEPT_LANGUAGE']得到当前浏览器的语言,是一个字符串,然后
如果是简体中文,会执行case 'zh-cn':
如果是繁体中文,会执行case 'zh-tw':
如果是美国英语,会执行case 'en-us':

这样,我们通过浏览器本身的语言,来执行指定的语句,这样的功能不就完成了吗。

下面我们来写跳转语句

PHP的跳转到一个网页的语句很简单,可以用一个函数header

header的具体用法,自己查PHP手册,我前面说了,PHP有上千的系统自带函数,在我们的实例教程中,会不断的出来新的函数,熟悉就对了,我是不可能把上千的函数都拿出来讲的,那样不如你去书店买本书来看更实用,学PHP就等于是学怎么用它自己带的函数来组合成各种各样的功能。

<?
switch ($_SERVER['HTTP_ACCEPT_LANGUAGE']) {
    case 'zh-cn':
        header("Location: http://www.cnwebmasters.com/");        
        break;
    case 'zh-tw':
        header("Location: http://www.cnwebmasters.com/");
        break;
    case 'en-us':
        header("Location: http://www.cnwebmasters.com/");
        break;
    default:
        header("Location: http://www.baidu.com/");
}
?>

这样,
当浏览器为简体中文,打开php网页的时候,网页会被自动定向到cnwebmasters.com
当浏览器为繁体中文,打开php网页的时候,网页会被自动定向到cnwebmasters.com
当浏览器为美国英语,打开php网页的时候,网页会被自动定向到microsofts.com
当浏览器的语言以上3种都不是的时候,就会转向到baidu.com

header有很多用途,其中最重要的就是重定向,要记住了。

注意:很多浏览器,表面上可以切换很多语言,但是你通过附件的2.php测试,就知道,其实这些浏览器换了不同的语言,但是始终发送给服务器的是zh-cn,表面语言换了,但是发送的核心没有变,这就是为什么有人作弊要失败的原因之一,如果你要测试本课程序,请使用一个简体中文浏览器,在使用一个真正的繁体中文浏览器,最后在使用一个真正的英文浏览器,而不要使用切换语言的这种,汉化过来的浏览器也不行,因为表面汉化了,但是浏览器发送给服务器的语言还是原始浏览器语言

本课完

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2008-6-18 17:17:30 | 显示全部楼层
沙发呀,等了几天,教程终于出来了。LZ辛苦了,感谢。

[ 本帖最后由 zhang1949 于 2008-6-18 17:19 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-18 17:24:00 | 显示全部楼层
我这几天外部事情有点多,不好意思
回复 支持 反对

使用道具 举报

发表于 2008-6-19 12:33:35 | 显示全部楼层
坚持看完楼主之前的课程,受益匪浅,以前学习总是找不着方向,这次算是找对地方了
回复 支持 反对

使用道具 举报

发表于 2008-11-3 07:25:52 | 显示全部楼层
编辑掉
回复 支持 反对

使用道具 举报

发表于 2010-11-28 21:13:39 | 显示全部楼层
第8课.rar (54.56 KB)
回复 支持 反对

使用道具 举报

发表于 2011-7-7 09:44:19 | 显示全部楼层
ddddddddddddddddddddd

点评

1212  发表于 2014-4-2 21:02
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则