Comment obtenir/définir la classe de langue de la page d'accès utilisateur via php

jacklove
Libérer: 2023-03-31 08:58:02
original
2250 Les gens l'ont consulté

La classe de langue utilisateur obtient/définit la langue de la page consultée par l'utilisateur. Si l'utilisateur ne définit pas la langue d'accès, la langue d'acceptation est lue. Afficher la page correspondante selon la langue sélectionnée par l'utilisateur (Anglais, Chinois simplifié, Chinois traditionnel)

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
?>
Copier après la connexion

démo

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

Cet article explique comment obtenir/définir la classe de langue de la page d'accès utilisateur via php Pour plus de contenu connexe, veuillez faire attention au site Web chinois de php.

Recommandations associées : <br/>

Comment calculer le chemin relatif entre deux fichiers via php<br/>

À propos des méthodes php de formatage des données JSON<br/>

Contenu connexe sur le verrouillage en lecture-écriture de la session php<br/>

<br/>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!