本文實(shí)例講述了php實(shí)現(xiàn)獲取及設(shè)置用戶訪問頁面語言類,分享給大家供大家參考。具體分析如下:
該實(shí)例User Language Class 獲取/設(shè)置用戶訪問的頁面語言,如果用戶沒有設(shè)置訪問語言,則讀取Accept-Language。根據(jù)用戶選擇的語言顯示對(duì)應(yīng)的頁面(英文,簡(jiǎn)體中文,繁體中文)
UserLang.class.php類文件如下:
<?php /** User Language Class 獲取/設(shè)置用戶訪問的頁面語言,如果用戶沒有設(shè)置訪問語言,則讀取Accept-Language * Date: 2014-05-26 * Author: fdipzone * Ver: 1.0 * * Func: * public get獲取用戶訪問語言 * public set設(shè)置用戶訪問語言 * private getAcceptLanguage 獲取HTTP_ACCEPT_LANGUAGE */class UserLang{ // class startprivate $name = 'userlang'; // cookie nameprivate $expire = 2592000; // cookie expire 30 days/** 初始化* @param String $name cookie name* @param int $expire cookie expire*/public function __construct($name='', $expire=null){// 設(shè)置cookie nameif($name!=''){$this->name = $name;}// 設(shè)置cookie expireif(is_numeric($expire) && $expire>0){$this->expire = intval($expire);}}/** 獲取用戶訪問語言 */public function get(){// 判斷用戶是否有設(shè)置過語言if(isset($_COOKIE[$this->name])){$lang = $_COOKIE[$this->name];}else{$lang = $this->getAcceptLanguage();}return $lang;}/** 設(shè)置用戶訪問語言* @param String $lang 用戶訪問語言*/public function set($lang=''){$lang = strtolower($lang);// 只能是英文,簡(jiǎn)體中文,繁體中文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示例程序如下:
<?phprequire "UserLang.class.php";$obj = new UserLang('sitelang', 3600); echo $obj->get().'<br>'; ?>
希望本文所述對(duì)大家PHP程序設(shè)計(jì)的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答