当前位置:首页 > PHP教程 > php类库 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-14 15:41:19 浏览: 评论:0 

这篇文章主要介绍了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.    
  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.   public function get(){  
  38.    
  39.     // 判断用户是否有设置过语言  
  40.     if(isset($_COOKIE[$this->name])){  
  41.       $lang = $_COOKIE[$this->name];  
  42.     }else{  
  43.       $lang = $this->getAcceptLanguage();  
  44.     }  
  45.     return $lang;  
  46.   }  
  47.    
  48.   /** 设置用户访问语言  
  49.   * @param String $lang 用户访问语言  
  50.   */ 
  51.   public function set($lang=''){  
  52.    
  53.     $lang = strtolower($lang);  
  54.    
  55.     // 只能是英文,简体中文,繁体中文  
  56.     if(in_array($langarray('en','sc','tc'))){  
  57.       setcookie($this->name, $lang, time()+$this->expire);  
  58.     }  
  59.   }  
  60.    
  61.    
  62.   /** 获取HTTP_ACCEPT_LANGUAGE */ 
  63.   private function getAcceptLanguage(){  
  64.    
  65.     $lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);  
  66.    
  67.     if(in_array(substr($lang,0,5), array('zh-tw','zh_hk'))){  
  68.       $lang = 'tc';  
  69.     }elseif(in_array(substr($lang,0,5), array('zh-cn','zh-sg'))){  
  70.       $lang = 'sc';  
  71.     }else{  
  72.       $lang = 'en';  
  73.     } //www.phpfensi.com 
  74.    
  75.     return $lang;  
  76.   }  
  77. // class end  
  78. ?> 

demo示例程序如下:

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

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

Tags: php页面语言类

分享到: