php教程

超轻量级php框架startmvc

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

更新时间:2020-02-28 00:25:49 作者:startmvc
php实现获取及设置用户访问页面语言类 更新时间:2014年09月24日 15:31:31 投稿:shichen2014 我要评论这篇文章主要介绍了php实现获取及设置用户访问页面语言类,可实现获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language,需要的朋友可以参考下本文实例讲述了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 获取 设置 用户 访问页面 语言