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脚本数据库功能详解(中)
Oct 09 PHP
php中处理模拟rewrite 效果
Dec 09 PHP
php 短链接算法收集与分析
Dec 30 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
Dec 29 PHP
php cli换行示例
Apr 22 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
PHP的Json中文处理解决方案
Sep 29 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
Laravel如何同时连接多个数据库详解
Aug 13 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/04/25 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python操作MongoDB详解及实例
2017/05/18 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
大学生个人推荐信范文
2013/11/25 职场文书
关于旷工的检讨书
2014/02/02 职场文书
大学学风建设方案
2014/05/04 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
团队激励口号
2014/06/06 职场文书
职业规划实施方案
2014/06/10 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
合作意向书范本
2019/04/17 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL