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网站基础优化方法小结
Sep 29 PHP
cmd下运行php脚本
Nov 25 PHP
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
php遍历目录方法小结
Mar 10 PHP
php制作文本式留言板
Mar 18 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
php实现解析xml并生成sql语句的方法
Feb 03 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 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中计算程序运行时间的类代码
2012/11/03 PHP
Laravel 5 学习笔记
2015/03/06 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
delegate与普通函数的区别
2014/01/22 面试题
土木工程实习生自我鉴定
2013/09/19 职场文书
英语专业毕业生自我鉴定
2013/11/09 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
员工考核管理制度
2014/02/02 职场文书
气象学专业个人求职信
2014/04/22 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书