获取和设置用户访问页面语言的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
	* 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/PHP/
    * @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模拟用户访问页面、jsp页面获取访问路径、js 获取页面访问路径,以便于您获取更多的相关知识。

时间: 2024-08-03 06:20:03

获取和设置用户访问页面语言的php类的相关文章

php实现获取及设置用户访问页面语言类

 本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考.具体分析如下: 该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language.根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文) UserLang.class.php类文件如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

php实现获取及设置用户访问页面语言类_php技巧

本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考.具体分析如下: 该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language.根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文) UserLang.class.php类文件如下: <?php /** User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language *

本机搭建tomcat服务器 架设网站 局域网内用户访问 页面动态加载的数据无法加载

问题描述 本机搭建tomcat服务器 架设网站 局域网内用户访问 页面动态加载的数据无法加载 本机搭建的tomcat服务器,数据库.局域网内用户访问系统页面,ajax动态加载数据无法显示.如图: [用户类型]是ajax动态加载的!本机页面正常,局域网内用户只有页面,没数据! 解决方案 你的代码呢?用chrome开发工具或者firebug看看报错了没有,ajax返回了什么内容. 解决方案二: 浏览器log中有没有错误,ajax打印下返回结果

帝国cms实现用户访问页面自动生成html

原因: 帝国cms在批量生成文件的时候非常慢.更改了一次模板,往往要更新半天. 思路: 删除所有html->利用nginx匹配未生成的html->php生成html 如果nginx 检测html已经生成,则直接展示,不跳转到php 实现:  代码如下 复制代码 location /{ alias /home/web/xxx.com/; if (!-e $request_filename) { rewrite /(.*)/(.*).html$ /chtml.php?classid=1&i

Apache设置用户访问文件夹目录认证密码

一.用户名密码认证 1,首先要让Apache支持.htaccess才可使用认证控制,windows下的apache默认是没有开启,参考:Windows主机:Apache启用rewrite和.htaccess 2,在需要认证目录下如D:wwwroottest建立 .htaccess 文件,在Windows下建立 .htaccess 文件有一个小技巧,正常情况下Windows文件命名规则是不允许建立" ." 开头的文件,咱们可以编辑好之后另存为.htaccess文件,加入下列内容:  代码

php 模拟用户访问页面 第一种

//用php curl_init函数 $ch = curl_init();   $timeout = 5;   curl_setopt ($ch, CURLOPT_URL, "$url");   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);   curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&

Linux服务器上安装使用TCPCopy来获取用户访问流量

tcpcopy可以当做一种压力测试工具,也可以获取真实的用户访问流量,从而模拟真实运行环境,tcpcopy的开发者这样介绍它: TCPCopy是一种请求复制(所有基于tcp的packets)工具,其应用领域较广,利用TCPCopy程序,可以把访问memcached的系统流量复制一份到membase系统中去.对于membase来说,这份流量就是访问membase的,跟直接上线 membase效果一样,就可以做各种试验,查看membase的各种特性. 主要有以下功能 1)分布式压力测试工具,利用在线

如果判断用户第一次访问页面,并在这个页面退出时给提示!

问题描述 如果判断用户第一次访问页面,并在这个页面退出时给提示! 解决方案 解决方案二:用个表来记录解决方案三:如果判断用户第一次访问页面,并在这个页面退出时给提示!表達不是很清楚?解决方案四:楼上的具体说说,如果判断第一次访问,如果判断退出?解决方案五:用Session解决方案六:1.如何判断用户第一次访问该页面2.如何判断该用户第一次访问后退出,退出的时候给友好提示!比如推荐收藏类解决方案七:当用户访问页面时.与表的数据匹配.如果有记录那么就不是第一次访问.解决方案八:晕,一天有几十万的访问

如何使浏览器在访问页面时得到加了乱码的URL,紧急求助!

问题描述 刚接触ASP.NET,发现用户在浏览器里输入地址就能得到页面(包括用户不想给用户看的.....)看到个用户访问页面时,会自动在浏览器里生成一堆乱码的例子www.51aspx.com上的杰邦教学管理系统,登录后浏览器里的地址变成http://localhost:2425/%e6%9d%b0%e9%82%a6%e6%95%99%e5%ad%a6%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e6%ba%90%e7%a0%81%e6%ba%90%e7%a0%81(A