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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
php下删除字符串中HTML标签的函数
Aug 27 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
thinkphp5实现微信扫码支付
Dec 23 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变量引用的面试题
2010/08/08 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
python自动翻译实现方法
2016/05/28 Python
有趣的python小程序分享
2017/12/05 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
给领导的致歉信范文
2014/01/13 职场文书
青年文明号服务承诺
2014/03/31 职场文书
美术课外活动总结
2014/07/08 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
个人存款证明书
2014/10/18 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
邀请函格式范文
2015/02/02 职场文书
幼儿园个人总结
2015/02/28 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript