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

5年以前  |  阅读数:1049 次  |  编程语言:PHP 

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

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

UserLang.class.php类文件如下:


    <?php 
    /** User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language 
    *  Date:  2014-05-26 
    *  Author: fdipzone 
    *  Ver:  1.0 
    * 
    *  Func: 
    *  public get        获取用户访问语言 
    *  public set        设置用户访问语言 
    *  private getAcceptLanguage 获取HTTP_ACCEPT_LANGUAGE 
    */ 

    class UserLang{ // class start 

      private $name = 'userlang'; // cookie name 
      private $expire = 2592000; // cookie expire 30 days 


      /** 初始化 
      * @param String $name  cookie name 
      * @param int  $expire cookie expire 
      */ 
      public function __construct($name='', $expire=null){ 

        // 设置cookie name 
        if($name!=''){ 
          $this->name = $name; 
        } 

        // 设置cookie expire 
        if(is_numeric($expire) && $expire>0){ 
          $this->expire = intval($expire); 
        } 
      } 

      /** 获取用户访问语言 */ 
      public function get(){ 

        // 判断用户是否有设置过语言 
        if(isset($_COOKIE[$this->name])){ 
          $lang = $_COOKIE[$this->name]; 
        }else{ 
          $lang = $this->getAcceptLanguage(); 
        } 
        return $lang; 
      } 

      /** 设置用户访问语言 
      * @param String $lang 用户访问语言 
      */ 
      public function set($lang=''){ 

        $lang = strtolower($lang); 

        // 只能是英文,简体中文,繁体中文 
        if(in_array($lang, array('en','sc','tc'))){ 
          setcookie($this->name, $lang, time()+$this->expire); 
        } 
      } 


      /** 获取HTTP_ACCEPT_LANGUAGE */ 
      private function getAcceptLanguage(){ 

        $lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']); 

        if(in_array(substr($lang,0,5), array('zh-tw','zh_hk'))){ 
          $lang = 'tc'; 
        }elseif(in_array(substr($lang,0,5), array('zh-cn','zh-sg'))){ 
          $lang = 'sc'; 
        }else{ 
          $lang = 'en'; 
        } 

        return $lang; 
      } 
    } // class end 
    ?> 

demo示例程序如下:


    <?php 

    require "UserLang.class.php"; 

    $obj = new UserLang('sitelang', 3600); 
    echo $obj->get().'<br>'; 
    ?>

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例