Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ruft/setzt die Sprachklasse der Benutzerzugriffsseite

PHP ruft/setzt die Sprachklasse der Benutzerzugriffsseite

黄舟
黄舟Original
2017-02-17 10:08:471099Durchsuche

User Language Class ruft/setzt die Sprache der Seite, auf die der Benutzer zugreift. Wenn der Benutzer die Zugriffssprache nicht festlegt, wird die Accept-Language gelesen. Zeigt die entsprechende Seite entsprechend der vom Benutzer ausgewählten Sprache an (Englisch, vereinfachtes Chinesisch, traditionelles Chinesisch)


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;;

?>


Das Obige ist der Inhalt von PHP zum Abrufen/Festlegen der Sprache der Benutzerzugriffsseite. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.org). .php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn