如果您想了解thinkPHP多语言切换设置方法详解的相关知识,那么本文是一篇不可错过的文章,我们将对thinkphp多语言进行全面详尽的解释,并且为您提供关于Nginx下ThinkPHP5的配置方法详
如果您想了解thinkPHP多语言切换设置方法详解的相关知识,那么本文是一篇不可错过的文章,我们将对thinkphp 多语言进行全面详尽的解释,并且为您提供关于Nginx下ThinkPHP5的配置方法详解、php简单实现多语言切换的方法,php语言切换、php简单实现多语言切换的方法,php语言切换_PHP教程、PHP编程:Thinkphp搭建包括JS多语言的多语言项目实现方法的有价值的信息。
本文目录一览:- thinkPHP多语言切换设置方法详解(thinkphp 多语言)
- Nginx下ThinkPHP5的配置方法详解
- php简单实现多语言切换的方法,php语言切换
- php简单实现多语言切换的方法,php语言切换_PHP教程
- PHP编程:Thinkphp搭建包括JS多语言的多语言项目实现方法
thinkPHP多语言切换设置方法详解(thinkphp 多语言)
本文实例讲述了thinkPHP多语言切换设置方法。分享给大家供大家参考,具体如下:
thinkPHP多语言设置有点‘高大上',为什么说它有点‘高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为‘开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为本人的经验有限,姑且认为tp的多语言设置必须的先初始化tp的CheckLangBehavior.class.PHP
怎么初始化CheckLangBehavior.class.PHP呢?下面进行讲解。
tp框架下面,所有模块初始化CheckLangBehavior.class.PHP,下面截图:
路径大家应该看得懂吧,就在你的公用模块配置文件config.PHP那里新建一个tags.PHP就行了,tags.PHP的内容如下:
上面的checkLangBehavior.class.PHP在tp的内置行为类文件夹下面,截图证明一下先:
这个类和上面那个类是不是一模一样啊?你自己可以进入tp框架的Library/Behavior的文件夹里面看看这个类是否存在,它里面的内容到底是什么,这里就不解析了。
配置好了上面的tags.PHP之后,我们就必须配置tp的配置文件config.PHP了
这个config.PHP就在上面的第一个截图中,你只要在那里添加下面的代码:
配置好这个之后就是多语言的文件配置了,不多说,截图:
下面是配置en-us.PHP文件中的代码:
zh-cn.PHP文件中的代码:
下面是我IndexController.class.PHP的lang方法的代码:
这是我的IndexController.class.PHP控制器中的lang方法下面的默认模板lang.html,下面就可以做测试了,
Nginx下ThinkPHP5的配置方法详解
《PHP实例:Nginx下ThinkPHP5的配置方法详解》要点:
本文介绍了PHP实例:Nginx下ThinkPHP5的配置方法详解,希望对您有用。如果有疑问,可以联系我们。
PHP实战本文主要给大家介绍了关于Nginx下ThinkPHP5的配置方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:
PHP实战url里public目录的隐藏
PHP实战出于安全的考虑,TP5的入口文件改成放在public下了,因为这样的话能防止被恶意用户访问到“/thinkPHP/”、“/vendor/”等等这些目录下的文件.所以当你以之前的习惯将网站documentroot配置为项目根目录的时候就会需要在url后面加上/public/来访问.当然可能也会有童鞋把入口文件放回到根目录下,然后还是以之前3.x版那样的形式访问了.
PHP实战但是很显然,这么做并不是那么的科学.
PHP实战假设项目目录为“/web/wwwroot/augsky.com”,那么我们在网站的Nginx配置文件里面将root配置为:
PHP实战
root /web/wwwroot/augsky.com/public;
PHP实战但是一定要记得将open_basedir设置为上一级项目的根目录下,不然应用会没有权限调用除public目录下的其他文件,网站会报500无法访问.(open_basedir的配置默认在PHP.ini里面,但如果是多个虚拟机环境的话有可能会在各个网站的user.ini文件里,这个要根据自己的实际情况来.)具体配置如下:
PHP实战
open_basedir=/web/wwwroot/augsky.com:/tmp/:/proc/
PHP实战隐藏入口文件index.PHP:
PHP实战
location /
{
try_files $uri $uri/ /index.PHP?s=$uri&$args;
#如果请求不是文件或目录,则将uri交给index.PHP处理,同时保留参数
}
PHP实战说一下try_files:
PHP实战
try_files
语法: try_files file1 [file2 ... filen] uri
OR
try_files file1 [file2 ... filen] =code
默认值: 无
作用域: server location
PHP实战try_files支持多个参数,每个参数代表一个文件,系统将按顺序检查这些文件是否存在,存在就直接执行,斜线“/”结尾代表目录,若都不存在,则会重定向到最后一个参数指向的文件或者返回指定的http状态码.
PHP实战pathinfo配置
PHP实战在配置文件里面增加这一段(如果你是lnmp一键包用户,请略过这一段往下翻):
PHP实战
location ~ [^/]\.PHP(/|$) {
set $path_info "";
#定义变量 $real_script_name,用于存放真实地址
set $real_script_name $fastcgi_script_name;
#如果地址与引号内的正则表达式匹配
if ($fastcgi_script_name ~ "^(.+?\.PHP)(/.+)$") {
#将文件地址赋值给变量 $real_script_name
set $real_script_name $1;
#将文件地址后的参数赋值给变量 $path_info
set $path_info $2;
}
#配置fastcgi的一些参数
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.PHP;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
}
PHP实战上面需要说明的是fastcgi_pass的设置,这个得根据你实际的PHP版本和安装目录来设定.
PHP实战好,做完这些之后,保存,重启Nginx和PHP就能生效了.如果你是lnmp一键包用户的话不用上面这样设置,往下面看:
PHP实战lnmp一键包pathinfo的设置
PHP实战其实lnmp一键包里面的pathinfo军哥已经都写好了,我们只需要把include enable-PHP.conf;修改成include enable-PHP-pathinfo.conf;然后重启lnmp就搞定了.
PHP实战
#include enable-PHP.conf;或者,你直接注释掉这一行,在下面添加新的一行
include enable-PHP-pathinfo.conf;
PHP实战就是这样简单.下面顺便附上在url里隐藏模块的方法
PHP实战url隐藏默认模块index
PHP实战很简单,在入口文件里面定义常量BIND_MODULE为你使用的模块就好了,以默认的index为例:
PHP实战
define('BIND_MODULE','index');
PHP实战这样,在url里面不会在有模块名这一级目录了.要知道,层级少一些的url对SEO是有好处的.
PHP实战下面是Nginx里面location的匹配规则
PHP实战Nginx location的匹配规则
- ~ 波浪线表示执行一个正则匹配,区分大小写
- ~* 表示执行一个正则匹配,不区分大小写
- ^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
- = 进行普通字符精确匹配
- @ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page,try_files
PHP实战location 匹配优先级
- = 精确匹配会第一个被处理.如果发现精确匹配,Nginx停止搜索其他匹配.
- 普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配.
- ^~ 则只匹配该规则,Nginx停止搜索其他匹配,否则Nginx会继续处理其他location指令.
- 最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则Nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用.
PHP实战总结
PHP实战以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对小编的支持
php简单实现多语言切换的方法,php语言切换
php简单实现多语言切换的方法,php语言切换
本文实例讲述了php简单实现多语言切换的方法。分享给大家供大家参考,具体如下:
1.主程序代码:
<?php include "lib/function.php"; ?> <script src="js/language.js"></script> <?php if(isset($_GET["language"])){ $_SESSION["language"] = $_GET["language"]; }else{ $_SESSION["language"] = getDefalutlanguage(); } $language_name = getLanguageName($_SESSION["language"]); include "lang/".$language_name.".inc"; ?> <SELECT NAME="language" id="language" onchange="changeLanguage(this)"> <?php $language_array = array_language(); foreach($language_array as $key => $value){ if($_SESSION["language"] == $value){ $selected = "selected = ''selected'' "; }else{ $selected = ""; } ?> <OPTION VALUE="<?php echo $value;?>" <?php echo $selected;?>><?php echo getLanguageName($value);?></OPTION>; <? } ?> </SELECT> <?php if($_GET["language"] == $value){ //$selected = "selected = ''selected'' "; } echo "语言:".$_SESSION["language"]; echo "测试:".$name; ?>
2. 所包含的语言包:English.inc
<?php $name = "name"; ?> Chinese.inc <?php $name = "名字"; ?>
3. 所包含的function.php
<?php function getVailableLanguage() { $language = array( ''af'' => ''Afrikaans'', ''az'' => ''Azerbaijani'', ''eu'' => ''Basque'', ''be'' => ''Belarusian'', ''be-lat'' => ''Belarusian latin'', ''bg'' => ''Bulgarian'', ''bs'' => ''Bosnian'', ''ca'' => ''Catalan'', ''zh'' => ''Chinese'', //''zh-TW'' => ''Chinese traditional'', //''zh-CN'' => ''Chinese simplified'', ''cs'' => ''Czech'', ''da'' => ''Danish'', ''de'' => ''German'', ''el'' => ''Greek'', ''en'' => ''English'', ''es'' => ''Spanish'', ''et'' => ''Estonian'', ''fa'' => ''Persian'', ''fi'' => ''Finnish'', ''fr'' => ''French'', ''gl'' => ''Galician'', ''he'' => ''Hebrew'', ''hi'' => ''Hindi'', ''hr'' => ''Croatian'', ''hu'' => ''Hungarian'', ''id'' => ''Indonesian'', ''it'' => ''Italian'', ''ja'' => ''Japanese'', ''ko'' => ''Korean'', ''ka'' => ''Georgian'', ''lt'' => ''Lithuanian'', ''lv'' => ''Latvian'', ''mk'' => ''Macedonian'', ''mn'' => ''Mongolian'', ''ms'' => ''Malay'', ''nl'' => ''Dutch'', ''no'' => ''Norwegian'', ''pl'' => ''Polish'', ''pt-BR'' => ''Brazilian portuguese'', ''pt'' => ''Portuguese'', ''ro'' => ''Romanian'', ''ru'' => ''Russian'', ''si'' => ''Sinhala'', ''sk'' => ''Slovak'', ''sl'' => ''Slovenian'', ''sq'' => ''Albanian'', ''sr-lat'' => ''Serbian latin'', ''sr'' => ''Serbian'', ''sv'' => ''Swedish'', ''th'' => ''Thai'', ''tr'' => ''Turkish'', ''tt'' => ''Tatarish'', ''uk'' => ''Ukrainian'', ); return $language; } function getLanguageName($language) { $languages = getVailableLanguage(); return $languages[$language]; } function array_language(){ $array_language = array("en","zh"); return $array_language; } function getDefalutlanguage(){ return "zh"; } ?>
4.所包含的language.js
立即学习“PHP免费学习笔记(深入)”;
function changeLanguage(obj) { var url = document.URL; var re = re = /[?&]language=[^&]*/; url = url.replace(re, ""); if (url.indexOf("?") > -1) { url += "&language=" + obj.value; } else { url += "?language=" + obj.value; } location.href = url; }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《PHP数学运算技巧总结》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
php简单实现多语言切换的方法,php语言切换_PHP教程
php简单实现多语言切换的方法,php语言切换
本文实例讲述了php简单实现多语言切换的方法。分享给大家供大家参考,具体如下:
1.主程序代码:
<?php include "lib/function.php"; ?> <script src="js/language.js"></script> <?php if(isset($_GET["language"])){ $_SESSION["language"] = $_GET["language"]; }else{ $_SESSION["language"] = getDefalutlanguage(); } $language_name = getLanguageName($_SESSION["language"]); include "lang/".$language_name.".inc"; ?> <SELECT NAME="language" id="language" onchange="changeLanguage(this)"> <?php $language_array = array_language(); foreach($language_array as $key => $value){ if($_SESSION["language"] == $value){ $selected = "selected = ''selected'' "; }else{ $selected = ""; } ?> <OPTION VALUE="<?php echo $value;?>" <?php echo $selected;?>><?php echo getLanguageName($value);?></OPTION>; <? } ?> </SELECT> <?php if($_GET["language"] == $value){ //$selected = "selected = ''selected'' "; } echo "语言:".$_SESSION["language"]; echo "测试:".$name; ?>
2. 所包含的语言包:English.inc
<?php $name = "name"; ?> Chinese.inc <?php $name = "名字"; ?>
3. 所包含的function.php
<?php function getVailableLanguage() { $language = array( ''af'' => ''Afrikaans'', ''az'' => ''Azerbaijani'', ''eu'' => ''Basque'', ''be'' => ''Belarusian'', ''be-lat'' => ''Belarusian latin'', ''bg'' => ''Bulgarian'', ''bs'' => ''Bosnian'', ''ca'' => ''Catalan'', ''zh'' => ''Chinese'', //''zh-TW'' => ''Chinese traditional'', //''zh-CN'' => ''Chinese simplified'', ''cs'' => ''Czech'', ''da'' => ''Danish'', ''de'' => ''German'', ''el'' => ''Greek'', ''en'' => ''English'', ''es'' => ''Spanish'', ''et'' => ''Estonian'', ''fa'' => ''Persian'', ''fi'' => ''Finnish'', ''fr'' => ''French'', ''gl'' => ''Galician'', ''he'' => ''Hebrew'', ''hi'' => ''Hindi'', ''hr'' => ''Croatian'', ''hu'' => ''Hungarian'', ''id'' => ''Indonesian'', ''it'' => ''Italian'', ''ja'' => ''Japanese'', ''ko'' => ''Korean'', ''ka'' => ''Georgian'', ''lt'' => ''Lithuanian'', ''lv'' => ''Latvian'', ''mk'' => ''Macedonian'', ''mn'' => ''Mongolian'', ''ms'' => ''Malay'', ''nl'' => ''Dutch'', ''no'' => ''Norwegian'', ''pl'' => ''Polish'', ''pt-BR'' => ''Brazilian portuguese'', ''pt'' => ''Portuguese'', ''ro'' => ''Romanian'', ''ru'' => ''Russian'', ''si'' => ''Sinhala'', ''sk'' => ''Slovak'', ''sl'' => ''Slovenian'', ''sq'' => ''Albanian'', ''sr-lat'' => ''Serbian latin'', ''sr'' => ''Serbian'', ''sv'' => ''Swedish'', ''th'' => ''Thai'', ''tr'' => ''Turkish'', ''tt'' => ''Tatarish'', ''uk'' => ''Ukrainian'', ); return $language; } function getLanguageName($language) { $languages = getVailableLanguage(); return $languages[$language]; } function array_language(){ $array_language = array("en","zh"); return $array_language; } function getDefalutlanguage(){ return "zh"; } ?>
4.所包含的language.js
立即学习“PHP免费学习笔记(深入)”;
function changeLanguage(obj) { var url = document.URL; var re = re = /[?&]language=[^&]*/; url = url.replace(re, ""); if (url.indexOf("?") > -1) { url += "&language=" + obj.value; } else { url += "?language=" + obj.value; } location.href = url; }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《PHP数学运算技巧总结》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
PHP编程:Thinkphp搭建包括JS多语言的多语言项目实现方法
《ThinkPHP搭建包括JS多语言的多语言项目@R_301_5655@》要点:
本文介绍了ThinkPHP搭建包括JS多语言的多语言项目@R_301_5655@,希望对您有用。如果有疑问,可以联系我们。
PHP应用本文实例讲述了ThinkPHP搭建包括JS多语言的多语言项目实现办法.分享给大家供大家参考.具体实现办法如下:
一、问题:
项目需要开发英文版,于是需要搭建多语言项目.
项目使用ThinkPHP框架,隐约记得ThinkPHP有多语言设置,翻看了赞助手册,果然有,这就边实验边开始:
二、实现办法:
ThinkPHP采用app_begain来检测和切换语言包,语言包和项目相关,构架等都比较简单,具体的这里:http://www.thinkPHP.cn/info/188.html
搭建好了,就可以使用URL."?l=en-us"来动态切换和调试,很不错的.
这边发现js内的多语言不好处理,总不能全部assign过去,反正多语言也不会总是配置,干脆自动生成对应的多语言js文件,然后页面根据LANG_SET来动态哀求对应的多语言文件,在基础Action类的_initialize()方法内调用下面的生成函数:
if(C("LANG_SWITCH_ON")){
$jsLangFilePath = "./Public/v2/js/lang";
$langList = L();
$jsLangFileName = $jsLangFilePath."/".LANG_SET.".js";
//@unlink($jsLangFileName);//测试,不永久缓存语言包
//已存在语言包
if(is_file($jsLangFileName)){
return;
}
$str = "var \$LANG={";
$total = count($langList);
$k = 1;
foreach ($langList as $key => $value) {
$str .=$key.":'".$value."'";
if($k < $total){
$str .=",";
}
// $str .="\r\n";
$k++;
}
if(!emptyempty($str)){
$str .= "}";
$file_handel = fopen($jsLangFileName,"w+");//打开文件,重写模式
fwrite($file_handel,$str);
fclose($file_handel);
}
}
}
这样,每次拜访前都会生成当前的语言包,然后在Tpl内调用.
这样,每次都会自动载入,这个js是永久缓存的,如果有语言包的更改,只需要修改ThinkPHP的语言包,然后删除旧的js语言包,让他自动重新生成.
js内就可以这么使用:top10_title = $LANG._NEW_LANGUAGE;这样整个项目就等于是双语的,并且是一处配置即可.
希望本文所述对大家的ThinkPHP框架程序设计有所赞助.
欢迎参与《ThinkPHP搭建包括JS多语言的多语言项目@R_301_5655@》讨论,分享您的想法,小编 jb51.cc为您提供专业教程。
今天关于thinkPHP多语言切换设置方法详解和thinkphp 多语言的介绍到此结束,谢谢您的阅读,有关Nginx下ThinkPHP5的配置方法详解、php简单实现多语言切换的方法,php语言切换、php简单实现多语言切换的方法,php语言切换_PHP教程、PHP编程:Thinkphp搭建包括JS多语言的多语言项目实现方法等更多相关知识的信息可以在本站进行查询。
本文标签: