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


Posted in PHP onSeptember 24, 2014

本文实例讲述了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 相关文章推荐
php获取后台Job管理的实现代码
Jun 10 PHP
mysql总结之explain
Feb 27 PHP
php使用GD实现颜色渐变实例
Jun 02 PHP
php算法实例分享
Jul 14 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 PHP
php实现的zip文件内容比较类
Sep 24 #PHP
php导出CSV抽象类实例
Sep 24 #PHP
php实现的双向队列类实例
Sep 24 #PHP
php实现的Timer页面运行时间监测类
Sep 24 #PHP
php密码生成类实例
Sep 24 #PHP
PHP中file_get_contents高?用法实例
Sep 24 #PHP
php实现的Cookies操作类实例
Sep 24 #PHP
You might like
用PHP制作静态网站的模板框架
2006/10/09 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
详解angular2 控制视图的封装模式
2018/12/27 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python的re模块正则表达式操作
2016/05/25 Python
python写一个md5解密器示例
2018/02/23 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
京剧自荐信
2014/01/26 职场文书
经典洗发水广告词
2014/03/13 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
职称评定个人总结
2015/03/05 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
安全责任协议书范本
2016/03/23 职场文书
话题作文之自信作文
2019/11/15 职场文书
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers