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

WBOY
Release: 2016-05-16 20:35:34
Original
826 people have browsed it

本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考。具体分析如下:

该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language。根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文)

UserLang.class.php类文件如下:

<&#63;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 
&#63;> 
Copy after login

demo示例程序如下:

<&#63;php 
 
require "UserLang.class.php"; 
 
$obj = new UserLang('sitelang', 3600); 
echo $obj->get().'<br>'; 
&#63;>

Copy after login

希望本文所述对大家PHP程序设计的学习有所帮助。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!