摘要:本文主要向大家介绍了PHP语言 获取、设置用户访问页面语言类,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。
本文主要向大家介绍了PHP语言 获取、设置用户访问页面语言类,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。
User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language。根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文)
UserLang.class.php
[php] view plain copy
1. <?php
2. /** User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language
3. * Date: 2014-05-26
4. * Author: fdipzone
5. * Ver: 1.0
6. *
7. * Func:
8. * public get 获取用户访问语言
9. * public set 设置用户访问语言
10. * private getAcceptLanguage 获取HTTP_ACCEPT_LANGUAGE
11. */
12.
13. class UserLang{ // class start
14.
15. private $name = 'userlang'; // cookie name
16. private $expire = 2592000; // cookie expire 30 days
17.
18.
19. /** 初始化
20. * @param String $name cookie name
21. * @param int $expire cookie expire
22. */
23. public function __construct($name='', $expire=null){
24.
25. // 设置cookie name
26. if($name!=''){
27. $this->name = $name;
28. }
29.
30. // 设置cookie expire
31. if(is_numeric($expire) && $expire>0){
32. $this->expire = intval($expire);
33. }
34.
35. }
36.
37.
38. /** 获取用户访问语言 */
39. public function get(){
40.
41. // 判断用户是否有设置过语言
42. if(isset($_COOKIE[$this->name])){
43. $lang = $_COOKIE[$this->name];
44. }else{
45. $lang = $this->getAcceptLanguage();
46. }
47.
48. return $lang;
49.
50. }
51.
52.
53. /** 设置用户访问语言
54. * @param String $lang 用户访问语言
55. */
56. public function set($lang=''){
57.
58. $lang = strtolower($lang);
59.
60. // 只能是英文,简体中文,繁体中文
61. if(in_array($lang, array('en','sc','tc'))){
62. setcookie($this->name, $lang, time()+$this->expire);
63. }
64.
65. }
66.
67.
68. /** 获取HTTP_ACCEPT_LANGUAGE */
69. private function getAcceptLanguage(){
70.
71. $lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
72.
73. if(in_array(substr($lang,0,5), array('zh-tw','zh_hk'))){
74. $lang = 'tc';
75. }elseif(in_array(substr($lang,0,5), array('zh-cn','zh-sg'))){
76. $lang = 'sc';
77. }else{
78. $lang = 'en';
79. }
80.
81. return $lang;
82.
83. }
84.
85.
86. } // class end
87.
88. ?>
demo
[php] view plain copy
1. <?php
2.
3. require "UserLang.class.php";
4.
5. $obj = new UserLang('sitelang', 3600);
6. echo $obj->get().'<br>';
7.
8. ?>
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号