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并发对MYSQL造成压力的解决方法
Feb 21 PHP
php除数取整示例
Apr 24 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
PHP pear安装配置教程
May 14 PHP
PHP邮箱验证示例教程
Jun 01 PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
PHP命名空间简单用法示例
Dec 28 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
提高网站信任度的技巧
2008/10/17 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
python设置值及NaN值处理方法
2018/07/03 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
python将音频进行变速的操作方法
2020/04/08 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
大学军训自我鉴定
2013/12/15 职场文书
竞职演讲稿范文
2014/01/11 职场文书
新学期班主任寄语
2014/01/18 职场文书
学生手册评语
2014/05/05 职场文书
新闻传播专业求职信
2014/07/22 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP