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 出现乱码和Sessions验证问题的解决方法!
Dec 06 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
PHP生成word文档的三种实现方式
Nov 14 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
php 多继承的几种常见实现方法示例
Nov 18 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语法(5)
2006/10/09 PHP
PHP 已经成熟
2006/12/04 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php常见的魔术方法详解
2014/12/25 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
Python中int()函数的用法浅析
2017/10/17 Python
在python 中实现运行多条shell命令
2019/01/07 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
python如何快速拼接字符串
2020/10/28 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
有原因的手表:Flex Watches
2019/03/23 全球购物
计算机专业优秀大学生自我总结
2014/01/21 职场文书
法制宣传月活动方案
2014/05/11 职场文书
公司年会策划方案
2014/05/17 职场文书
老人院义工活动感想
2015/08/07 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
Python语言内置数据类型
2022/02/24 Python
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers