擷取和設定使用者訪問頁面語言的php類

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.