繁体   English   中英

为什么Smarty用&#39;%&gt;代替&#39; <?php echo '%> “; ?&gt;以及如何避免这种情况?

[英]Why does Smarty replace things like '%>' with <?php echo '%>'; ?> and how to avoid this?

我正在优化Smarty模板并且事情看起来不错,但唯一剩下的就是生成的缓存模板充满了像<?php echo '%>'; ?> <?php echo '%>'; ?>它应该只有'%>'

它对'?>'也是一样的,但这是可以理解的,因为它会混淆PHP, '%>'会产生相同的效果吗?

看一下asp-tags ini设置:

asp_tags布尔值

除了通常的标记之外,还允许使用类似ASP的<%%>标记。 这包括<%= $ value%>的变量 - >值打印速记。 有关更多信息,请参阅从HTML转义。

在较新的PHP版本中,这是默认关闭,所以如果聪明的改变那些我不会感到惊讶。 (如果我理解正确的话)

正如您所指出的,对于更传统的结束标记,它也是如此?>

好吧, %>也是一个PHP结束标记,虽然默认情况下禁用了一个。 你用asp-tags激活它:

除了通常的标记之外,还允许使用类似ASP的<%%>标记。 这包括<%= $ value%>的变量 - >值打印速记。 有关更多信息,请参阅从HTML转义。

Smarty刚刚彻底。 不幸的是,它并没有做得很好。 确保禁用此功能,您的问题应该消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM