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分页显示制作详细讲解
Dec 05 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
PHP session垃圾回收机制实例分析
Jun 28 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
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
javascript实现数独解法
2015/03/14 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
对于Python装饰器使用的一些建议
2015/06/03 Python
python多进程共享变量
2016/04/06 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
python使用turtle绘制分形树
2018/06/22 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
通过代码实例了解Python sys模块
2020/09/14 Python
python中re模块知识点总结
2021/01/17 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
酒后驾车标语
2014/06/30 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
稽核岗位职责
2015/02/10 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python
HTML基础详解(下)
2021/10/16 HTML / CSS