This article describes the example of php implementing obtaining and setting the language class of the user access page, and shares it with everyone for your reference. The specific analysis is as follows:
The User Language Class of this instance gets/sets the language of the page accessed by the user. If the user does not set the access language, Accept-Language is read. Display the corresponding page according to the language selected by the user (English, Simplified Chinese, Traditional Chinese)
UserLang.class.php class file is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
/**User Language Class gets/sets the language of the page accessed by the user. If the user does not set the access language, read Accept-Language * Date: 2014-05-26 * Author: fdipzone * Ver: 1.0 * * Func: * public get Get user access language * public set Set user access language * private getAcceptLanguage Get HTTP_ACCEPT_LANGUAGE */
class UserLang{ // class start
private $name = 'userlang'; // cookie name private $expire = 2592000; // cookie expire 30 days
/**Initialization * @param String $name cookie name * @param int $expire cookie expire */ public function __construct($name='', $expire=null){
// Set cookie name if($name!=''){ $this->name = $name; }
// Set cookie expire if(is_numeric($expire) && $expire>0){ $this->expire = intval($expire); } }
/**Get user access language*/ public function get(){
// Determine whether the user has set a language if(isset($_COOKIE[$this->name])){ $lang = $_COOKIE[$this->name]; }else{ $lang = $this->getAcceptLanguage(); } return $lang; }
/**Set user access language * @param String $lang User access language */ public function set($lang=''){
$lang = strtolower($lang);
// Can only be in English, Simplified Chinese, Traditional Chinese if(in_array($lang, array('en','sc','tc'))){ setcookie($this->name, $lang, time()+$this->expire); } }
/**Get 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 ?> |
The demo sample program is as follows:
4 |