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开发模式(简写版)
Mar 15 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
深入php list()函数的详解
Jun 05 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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编写大型网站问题集
2007/03/06 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
js中生成map对象的方法
2014/01/09 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
Vue组件基础用法详解
2020/02/05 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
python中bisect模块用法实例
2014/09/25 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
毕业生求职的求职信
2013/12/05 职场文书
教育局长自荐信范文
2013/12/22 职场文书
触电现场处置方案
2014/05/14 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs