支持中文变量的smarty模板引擎(修改版):程序与模板全部使用utf8编码的情况下,可以支持中文变量名

程序与模板全部使用utf8编码的情况下,可以支持中文变量名

smarty 基于smarty 3.0.6修改,只能用于utf-8编码的php程序+utf-8编码的模板(两者必须是utf-8!)

感谢maquan 的辛勤不懈的努力付出。

详细讨论过程,请参考这里 http://topic.csdn.net/u/20110304/09/6656b521-6d7b-4188-a9ca-316aafcd65b6.html

原smarty代码修改处:

3.0.6,在 Smarty/sysplugins/smarty_internal_templatelexer.php:455 附近有如下的内容:
function yylex2()
{
...
$yy_global_pattern = "...|^(0[xX][0-9a-fA-F]+)|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/u";
...

改成下面的样子即可:

function yylex2()
{
...
$yy_global_pattern = "...|^(0[xX][0-9a-fA-F]+)|^([0-9]*[a-zA-Z_\\pL][\\w\\pL]*)|^(\\d+)|^(\\s+)|^(.)/u";
...

可以直接下载本文附件,如不放心,请按上述说明自行修改。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据