2013-03-11 58 views
0

我已经将我的smarty升级到v3。 对此我有一个奇怪的事情。它引发SmartyCompilerExceptions什么是正常的,因为我有v2格式的代码。Smarty升级不能在远程服务器上工作

我有这对我的TPL:{foreach key=k item=i from=$err}...{/foreach},这是不是在Smarty的3下工作。我会改变这一点,但我的问题是:

Smarty的只是在我的生产服务器抛出这些错误。
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/www/site/tpl/system.tpl" on line 272 "{foreach key=key item=item from=$content}" - Unexpected "$", expected one of: "identifier"'
在我的家庭服务器上一切正常。 我在这两个系统上都有相同的apache,php和Smarty。

这怎么可能?为什么在Smarty 3的测试系统中使用旧代码而不会引发错误?有任何想法吗?

回答

0

试着改变您的来电:

{foreach key="key" item="item" from=$content} 

也就是说,附上您字符串以双引号。 Smarty 3在报价方面更加严格

+0

谢谢,我把它改成了'{foreach $ content as $ i}',它可以工作。但我无法弄清楚,为什么我的旧代码在我的本地服务器上工作。为什么不抛出错误。 – heal 2013-03-12 11:48:11

+0

也许你正在使用不同的smarty版本? – periklis 2013-03-12 12:13:49

+0

不,我使用的是相同的版本。我必须升级到测试和生产服务器上的最新版本。 – heal 2013-03-12 13:44:35

0

原因是因为我的生产服务器抛出一个错误,而我的测试服务器不是我的生产上产生的错误mbstring.func_overload设置为7并且在我的测试服务器上设置为0.

希望它有助于某人。

相关问题