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 相关文章推荐
smarty section简介与用法分析
Oct 03 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
php简单获取目录列表的方法
Mar 24 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
PHP类的特性实例分析
Sep 28 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP中的Iterator迭代对象属性详解
Apr 12 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 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
国内咖啡文化
2021/03/03 咖啡文化
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP常用函数小技巧
2008/09/11 PHP
php之curl设置超时实例
2014/11/03 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
python3.0 字典key排序
2008/12/24 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
Python docx库用法示例分析
2019/02/16 Python
numpy数组广播的机制
2019/07/12 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
python递归函数用法详解
2020/10/26 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
经济管理专业自荐信
2013/12/30 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
道路建设实施方案
2014/03/18 职场文书
小学老师寄语大全
2014/04/04 职场文书
工程承包协议书
2014/04/22 职场文书
社会实践的活动方案
2014/08/22 职场文书
团队拓展训练心得体会
2016/01/12 职场文书