php实现获取及设置用户访问页面语言类

这篇文章主要介绍了php实现获取及设置用户访问页面语言类,可实现获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language,需要的朋友可以参考下

本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考。具体分析如下:

该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language。根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文)

UserLang.class.php类文件如下:

  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. class UserLang{ // class start
  13. private $name = 'userlang'; // cookie name
  14. private $expire = 2592000; // cookie expire 30 days
  15. /** 初始化
  16. * @param String $name cookie name
  17. * @param int $expire cookie expire
  18. */
  19. public function __construct($name='', $expire=null){
  20. // 设置cookie name
  21. if($name!=''){
  22. $this->name = $name;
  23. }
  24. // 设置cookie expire
  25. if(is_numeric($expire) && $expire>0){
  26. $this->expire = intval($expire);
  27. }
  28. }
  29. /** 获取用户访问语言 */
  30. public function get(){
  31. // 判断用户是否有设置过语言
  32. if(isset($_COOKIE[$this->name])){
  33. $lang = $_COOKIE[$this->name];
  34. }else{
  35. $lang = $this->getAcceptLanguage();
  36. }
  37. return $lang;
  38. }
  39. /** 设置用户访问语言
  40. * @param String $lang 用户访问语言
  41. */
  42. public function set($){
  43. $lang = strtolower($lang);
  44. // 只能是英文,简体中文,繁体中文
  45. if(in_array($lang, array('en','sc','tc'))){
  46. setcookie($this->name, $lang, time()+$this->expire);
  47. }
  48. }
  49. /** 获取HTTP_ACCEPT_LANGUAGE */
  50. private function getAcceptLanguage(){
  51. $lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
  52. if(in_array(substr($lang,0,5), array('zh-tw','zh_hk'))){
  53. $lang = 'tc';
  54. }elseif(in_array(substr($lang,0,5), array('zh-cn','zh-sg'))){
  55. $lang = 'sc';
  56. }else{
  57. $lang = 'en';
  58. } //www.phpfensi.com
  59. return $lang;
  60. }
  61. } // class end
  62. ?>

demo示例程序如下:

  1. <?php
  2. require "UserLang.class.php";
  3. $obj = new UserLang('sitelang', 3600);
  4. echo $obj->get().'<br>';
  5. ?>

希望本文所述对大家PHP程序设计的学习有所帮助。