Home >Backend Development >PHP Tutorial >How to get/set the language class of the user access page through php

How to get/set the language class of the user access page through php

jacklove
jackloveOriginal
2018-06-09 13:43:422330browse

User Language Class gets/sets the language of the page accessed by the user. If the user does not set the access language, Accept-Language is read. Display the corresponding page according to the language selected by the user (English, Simplified Chinese, Traditional Chinese)

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 = &#39;userlang&#39;; // cookie name
    private $expire = 2592000;  // cookie expire 30 days
    /** 初始化
    * @param String $name   cookie name
    * @param int    $expire cookie expire
    */
    public function __construct($name=&#39;&#39;, $expire=null){
        // 设置cookie name
        if($name!=&#39;&#39;){
            $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=&#39;&#39;){
        $lang = strtolower($lang);
        // 只能是英文,简体中文,繁体中文
        if(in_array($lang, array(&#39;en&#39;,&#39;sc&#39;,&#39;tc&#39;))){
            setcookie($this->name, $lang, time()+$this->expire);
        }
    }
    /** 获取HTTP_ACCEPT_LANGUAGE */
    private function getAcceptLanguage(){
        $lang = strtolower($_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;]);
        if(in_array(substr($lang,0,5), array(&#39;zh-tw&#39;,&#39;zh_hk&#39;))){
            $lang = &#39;tc&#39;;
        }elseif(in_array(substr($lang,0,5), array(&#39;zh-cn&#39;,&#39;zh-sg&#39;))){
            $lang = &#39;sc&#39;;
        }else{
            $lang = &#39;en&#39;;
        }
        return $lang;
    }
} // class end
?>

demo

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

This article explains how to get/set the language class of the user access page through php. For more related content, please pay attention to the php Chinese website.

Related recommendations:

How to calculate the relative path between two files through php

About php Methods of formatting JSON data

About php session read-write lock

<br/>

The above is the detailed content of How to get/set the language class of the user access page through php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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