我有一个带有 php smarty 标签的 html 页面。问题是{literal}
标签,需要转义 javascript 和 css 代码块。在许多其他 php 版本中,如 php 5.3 或 5.5 工作正常,但在 php 5.4.9 中不起作用
当我使用{literal}
转义 javascript 时,如下所示:
<script type="text/javascript">
{literal}
$(function () {
jQuery.support.placeholder = false;
test = document.createElement('input');
if('placeholder' in test) jQuery.support.placeholder = true;
if (!$.support.placeholder) {
$('.field').find ('label').show ();
}
});
{/literal}
</script>
我得到一个"Fatal error: Smarty error: [in login.html line 70]: syntax error: unrecognized tag: php' . str_repeat(" ", substr_count('{literal (Smarty_Compiler.class.php, line 446) in /var/www/library/smarty/Smarty.class.php on line 1095"
,第 70 行是代码{literal}
。
但是,如果我删除{literal}
标签并使用它{ldelim}
,{rdelim}
这可以正常工作,例如:
<script type="text/javascript">
$(function () {ldelim}
jQuery.support.placeholder = false;
test = document.createElement('input');
if('placeholder' in test) jQuery.support.placeholder = true;
if (!$.support.placeholder) {ldelim}
$('.field').find ('label').show ();
{rdelim}
{rdelim});
</script>
当我有相同的项目在其他 php 版本中正常工作并且当我有很多页面转义 javascript 和 css 时,我不认为{literal}
将项目中的所有标签更改为{ldelim}
{rdelim}
{literal}