php实现获取及设置用户访问页面语言类
本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考。具体分析如下:
该实例UserLanguageClass获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language。根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文)
UserLang.class.php类文件如下:
<?php /**UserLanguageClass获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language *Date:2014-05-26 *Author:fdipzone *Ver:1.0 * *Func: *publicget获取用户访问语言 *publicset设置用户访问语言 *privategetAcceptLanguage获取HTTP_ACCEPT_LANGUAGE */ classUserLang{//classstart private$name='userlang';//cookiename private$expire=2592000;//cookieexpire30days /**初始化 *@paramString$namecookiename *@paramint$expirecookieexpire */ publicfunction__construct($name='',$expire=null){ //设置cookiename if($name!=''){ $this->name=$name; } //设置cookieexpire if(is_numeric($expire)&&$expire>0){ $this->expire=intval($expire); } } /**获取用户访问语言*/ publicfunctionget(){ //判断用户是否有设置过语言 if(isset($_COOKIE[$this->name])){ $lang=$_COOKIE[$this->name]; }else{ $lang=$this->getAcceptLanguage(); } return$lang; } /**设置用户访问语言 *@paramString$lang用户访问语言 */ publicfunctionset($lang=''){ $lang=strtolower($lang); //只能是英文,简体中文,繁体中文 if(in_array($lang,array('en','sc','tc'))){ setcookie($this->name,$lang,time()+$this->expire); } } /**获取HTTP_ACCEPT_LANGUAGE*/ privatefunctiongetAcceptLanguage(){ $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; } }//classend ?>
demo示例程序如下:
<?php require"UserLang.class.php"; $obj=newUserLang('sitelang',3600); echo$obj->get().'<br>'; ?>
希望本文所述对大家PHP程序设计的学习有所帮助。