加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 教程 > 正文

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

发布时间:2022-06-22 08:58:16 所属栏目:教程 来源:互联网
导读:这篇文章主要介绍了php实现获取及设置用户访问页面语言类,可实现获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language,需要的朋友可以参考下 本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考。具体分析如
  这篇文章主要介绍了php实现获取及设置用户访问页面语言类,可实现获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language,需要的朋友可以参考下
 
  本文实例讲述了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';  
      } //www.phpfensi.com
     
      return $lang;  
    }  
  } // class end  
  ?>
  demo示例程序如下:
 
  <?php  
     
  require "UserLang.class.php";  
     
  $obj = new UserLang('sitelang', 3600);  
  echo $obj->get().'<br>';  
  ?>
  希望本文所述对大家PHP程序设计的学习有所帮助。
 
 

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读