当前位置:Gxlcms > PHP教程 > php获取/设置用户访问页面语言类

php获取/设置用户访问页面语言类

时间:2021-07-01 10:21:17 帮助过:10人阅读

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


UserLang.class.php


  1. <?php
  2. /** User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language
  3. * Date: 2014-05-26
  4. * Author: fdipzone
  5. * Ver: 1.0
  6. *
  7. * Func:
  8. * public get 获取用户访问语言
  9. * public set 设置用户访问语言
  10. * private getAcceptLanguage 获取HTTP_ACCEPT_LANGUAGE
  11. */
  12. class UserLang{ // class start
  13. private $name = 'userlang'; // cookie name
  14. private $expire = 2592000; // cookie expire 30 days
  15. /** 初始化
  16. * @param String $name cookie name
  17. * @param int $expire cookie expire
  18. */
  19. public function __construct($name='', $expire=null){
  20. // 设置cookie name
  21. if($name!=''){
  22. $this->name = $name;
  23. }
  24. // 设置cookie expire
  25. if(is_numeric($expire) && $expire>0){
  26. $this->expire = intval($expire);
  27. }
  28. }
  29. /** 获取用户访问语言 */
  30. public function get(){
  31. // 判断用户是否有设置过语言
  32. if(isset($_COOKIE[$this->name])){
  33. $lang = $_COOKIE[$this->name];
  34. }else{
  35. $lang = $this->getAcceptLanguage();
  36. }
  37. return $lang;
  38. }
  39. /** 设置用户访问语言
  40. * @param String $lang 用户访问语言
  41. */
  42. public function set($lang=''){
  43. $lang = strtolower($lang);
  44. // 只能是英文,简体中文,繁体中文
  45. if(in_array($lang, array('en','sc','tc'))){
  46. setcookie($this->name, $lang, time()+$this->expire);
  47. }
  48. }
  49. /** 获取HTTP_ACCEPT_LANGUAGE */
  50. private function getAcceptLanguage(){
  51. $lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
  52. if(in_array(substr($lang,0,5), array('zh-tw','zh_hk'))){
  53. $lang = 'tc';
  54. }elseif(in_array(substr($lang,0,5), array('zh-cn','zh-sg'))){
  55. $lang = 'sc';
  56. }else{
  57. $lang = 'en';
  58. }
  59. return $lang;
  60. }
  61. } // class end
  62. ?>


demo


  1. <?php
  2. require "UserLang.class.php";
  3. $obj = new UserLang('sitelang', 3600);
  4. echo $obj->get().'<br>';
  5. ?>


以上就是php 获取/设置用户访问页面语言类的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

人气教程排行