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获取url的函数代码
Aug 02 PHP
浅析php header 跳转
Jun 17 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
php简单实现MVC
Feb 05 PHP
php实现求相对时间函数
Jun 15 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
PHP PDOStatement::getAttribute讲解
Feb 01 PHP
PHP使用观察者模式处理异常信息的方法详解
Sep 24 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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 加密与解密的斗争
2009/04/17 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
用于table内容排序
2006/07/21 Javascript
setAttribute 与 class冲突解决
2008/02/17 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python多线程编程简单介绍
2015/04/13 Python
Python访问纯真IP数据库脚本分享
2015/06/29 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
python批量下载抖音视频
2019/06/17 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
会计专业推荐信
2013/10/29 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
自主招生教师推荐信
2014/05/10 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
销售员岗位职责范本
2015/04/11 职场文书
郭明义观后感
2015/06/08 职场文书
个人欠条范本
2015/07/03 职场文书
校长新学期致辞
2015/07/30 职场文书
房产遗嘱范本
2015/08/06 职场文书