解析html<;脚本>;通过PHP isn';我不能完全工作
我觉得这很奇怪,一定是我做错了什么,但还是。。。 我正在使用PHP和TPL文件处理一个页面。 在我的TPL文件中,如果需要的话,页脚中有一个地方可以放一些额外的行 例如,使用Javascript进行表单检查 因此,在PHP中,我做了以下工作:解析html<;脚本>;通过PHP isn';我不能完全工作,php,javascript,smarty,template-engine,Php,Javascript,Smarty,Template Engine,我觉得这很奇怪,一定是我做错了什么,但还是。。。 我正在使用PHP和TPL文件处理一个页面。 在我的TPL文件中,如果需要的话,页脚中有一个地方可以放一些额外的行 例如,使用Javascript进行表单检查 因此,在PHP中,我做了以下工作: $foot = "<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>"; $foot=“if(document.
$foot = "<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>";
$foot=“if(document.getElementById){loadEvents();}”;
然后解析$foot变量,HTML中的结果如下:
<script type="text/javascript">if(document.getElementById)</script>
if(document.getElementById)
因此,{loadEvents();}
丢失了
有人看到我在这里遗漏了什么吗。。。我真的没有找到它。我忘了转义一个字符或什么吗?我相信{}PHP希望在其中包含一个变量。我还没有测试过这个,但是试着用单引号代替双引号。显然,这个词会侵蚀花括号中的部分 尝试以下方法:
$foot = "{literal}<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>{/literal}";
$foot=“{literal}如果(document.getElementById){loadEvents();}{/literal}”;
看起来您正在使用Smarty这样的模板引擎,它试图解析在大括号中找到的任何内容
smarty文档中介绍了如何使smarty忽略它将解析的部分。如果使用smarty,可以使用{literal}
不起作用,我还注意到您的解决方案中的最后一个引号是一个双引号,已修复,仍然不起作用是的。看到它太晚了,修正了-1,因为这根本不是真正的echo“{1+1}”;不会输出“2”。双引号中的{}仅用于消除变量歧义,例如,“他喝了一些{$beer}。”这里的问题很可能是模板引擎,在这种情况下,修复将取决于使用的引擎。这是不正确的-$foot=“我不清楚是否涉及到模板引擎。我应该想到的。你说的TPL文件是指Smarty吗?$foot是如何进入tpl文件的?也许告诉人们你使用模板引擎而不是让他们猜测是一件好事。-1因为php不会将{var}解析为变量。它使用$var、${var}或{$var}我没有说{var}?我所说的是,它期望一个变量;在这种情况下,是的,它将沿着{$var}的路线