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 相关文章推荐
克隆一个新项目的快捷方式
Apr 10 PHP
基于PHP静态类的原罪详解
May 06 PHP
php中cookie的使用方法
Mar 29 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 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利用反射实现插件机制的方法
2015/03/14 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
便捷提取python导入包的属性方法
2018/10/15 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
思想政治自我鉴定
2013/10/06 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
房屋改造计划书
2014/01/10 职场文书
心理咨询承诺书
2014/05/20 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
解除合同协议书范本
2016/03/21 职场文书
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
python turtle绘图
2022/05/04 Python