您好,欢迎访问一九零五行业门户网

php 多语言切换

目录结构: //============================================ 文件内容: /include/language.php java代码 ?php $languages=array(); $languages[ 'zh-cn' ][ name ]= china ; $languages[ zh-cn ][ image ]= flag1.jpg ; $languages[ en ][ name ]= english
目录结构:
//============================================
文件内容:
/include/language.php
java代码  
dir = str_replace ( \\, /, dirname ( __file__ ) ) . /language/;          $this->initdefaultlanguage ();          if (empty ( $this->language_country ) && ! empty ( $this->language_area )) {              $this->language_country = substr ( $this->language_area, 0, strpos ( $this->language_area, - ) );          }          $this->initlanguagedir ();      }            /*     取得语言文件的绝对路径     */      public function getfiledir($file) {          $dir = $this->dir;          if (file_exists ( $this->getlanguagedir () . $file )) {              return $this->getlanguagedir () . $file;          } else if (file_exists ( $dir . $this->language_area . / . $file )) {              return $dir . $this->language_area . / . $file;          } else if (file_exists ( $dir . $this->language_country . / . $file )) {              return $dir . $this->language_country . / . $file;          } else if (file_exists ( $dir . en/ . $file )) {              return $dir . en/ . $file;          } else {              return false;          }      }      /*     取得当前使用语言的文件夹     */      public function getlanguagedir() {          return $this->language_dir;      }            /*     初始化语言文件夹     */      private function initlanguagedir() {          $dir = $this->dir;          if (file_exists ( $dir . $this->language_area ) && ! empty ( $this->language_area )) {              $this->language_dir = $dir . $this->language_area . /;          } else if (file_exists ( $dir . $this->language_country ) && ! empty ( $this->language_country )) {              $this->language_dir = $dir . $this->language_country . /;          } else {              $this->language_dir = $dir . en/;          }      }            /*     初始化默认语言     */      public function initdefaultlanguage() {          if ($this->getcookielanguage ()) {              return;          }          $language = $_server ['http_accept_language'];          preg_match_all ( /[\w-]+/, $language, $language );          $this->language_area = $language [0] [0];          @$this->language_country = $language [0] [1];          $this->setcookielanguage ();      }            /*     从cookie中导入语言种类     */      public function getcookielanguage() {          if (! @empty ( $_cookie ['lang'] )) {              $language = $_cookie ['lang'];              if (strpos ( $language, - )) {                  $this->language_area = $language;              } else {                  $this->language_country = $language;              }              return true;          }          return false;      }            /*        把当前的语言种类放到cookie中     */      public function setcookielanguage($lang = ) {          if (empty ( $lang )) {              $lang = $this->language_area;          }          if (empty ( $lang )) {              $lang = $this->language_country;          }          if (empty ( $lang )) {              return false;          }          setcookie ( lang, $lang, time () + 365 * 24 * 3600, /, $this->getdomain () );          return true;      }            public function getdomain() {          if (empty ( $this->domain )) {              $domain = $_server ['server_name'];              if (strcasecmp ( $domain, localhost ) === 0) {                  $this->domain = $domain;                  return $this->domain;              }              if (preg_match ( /^(\d+\.){3}\d+$/, $domain, $domain_temp )) {                  $this->domain = $domain_temp [0];                  return $this->domain;              }              preg_match_all ( /\w+\.\w+$/, $domain, $domain );              $this->domain = $domain [0] [0];              return $this->domain;          } else {              return $this->domain;          }      }  }  ?>   /include/language/zh-cn/language.php
java代码  
   /include/language/en/language.php
java代码  
   /chang_language.php
java代码  
getfiledir(language.php);  include($language_file);  ?>  >  var domain=getdomain();?>;  var cur_language=;  function change_language(lan)  {      alert(lan);      setcookie(lang,lan,1,/,domain,false);       if(cur_language==lan)       {           return ;       }              document.location.reload();         }    // writecookie(mycookie, my name, 24);    // stores the string my name in the cookie mycookie which expires after 24 hours.      function setcookie( name, value, expires, path, domain, secure ) {        var today = new date();            today.settime( today.gettime() );            if ( expires ) {            expires = expires * 1000 * 60 * 60 * 24;            }            var expires_date = new date( today.gettime() + (expires) );            document.cookie = name+'='+escape( value ) +            ( ( expires ) ? ';expires='+expires_date.togmtstring() : '' ) + //expires.togmtstring()            ( ( path ) ? ';path=' + path : '' ) +            ( ( domain ) ? ';domain=' + domain : '' ) +            ( ( secure ) ? ';secure' : '' );    }           $value)  {    echo ',$key,'\')';     echo '>',$language_message[$languages[$key][name]],' ,$languages[$key][image],' border=0/>';  }  ?>     /header.php
java代码  
language_area);  $current_language = getcurrentlanguage ();  //print_r($current_language);  function getcurrentlanguage() {      global $lang, $languages;      if (array_key_exists ( $lang->language_area, $languages )) {          return $lang->language_area;      } else if (array_key_exists ( $lang->language_country, $languages )) {          return $lang->language_country;      } else {          return en;      }    }  ?>   /header.tpl
html代码  
nbsp;html public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>  html xmlns=http://www.w3.org/1999/xhtml>  head>  meta http-equiv=content-type content=text/html; charset=utf-8 />  title>多语言测试title>  link href=css/css.css rel=stylesheet type=text/css />  script type=text/javascript src=javascript/prototype_1_6.js>script>  head>   /test_language.php
java代码  
getfiledir ( speak_language.php );  require_once ($language_file);    print_r($speak_language_message);  ?>   测试地址为:http://127.0.0.1/multiple_language/chang_language.php
localhost不能使用,正式域名及ip地址可以使用。
其它类似信息

推荐信息