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 相关文章推荐
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
PHP中for循环语句的几种变型
Mar 16 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
PHP form 表单传参明细研究
Jul 17 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
浅析iis7.5安装配置php环境
May 10 PHP
老生常谈PHP数组函数array_merge(必看篇)
May 25 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
laravel框架中视图的基本使用方法分析
Nov 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
php把session写入数据库示例
2014/02/26 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
基于python实现从尾到头打印链表
2019/11/02 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
Python如何测试stdout输出
2020/08/10 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
会计辞职信范文
2014/01/15 职场文书
一年级小学生评语
2014/04/22 职场文书
安全协议书
2014/04/23 职场文书
超市创业计划书
2014/04/24 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
安全生产承诺书范文
2014/05/22 职场文书
优秀教师推荐材料
2014/12/16 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
sql注入报错之注入原理实例解析
2022/06/10 MySQL