我们有这个 Smarty 函数,它返回模板的 HTML 代码。然而,该函数也有可能返回一个空字符串,我们现在希望识别它。我们的系统多年来一直稳定运行,所以我正在寻找侵入性最小的解决方案。

是否可以将返回值分配给 smarty 变量?我曾尝试将它分配给一个 Javascript 变量,但是,因为部分 HTML 是用户生成的,返回字符串可能是双引号和单引号的混合,这会导致 IE 出现问题(不幸的是我们的大多数用户群)。

<script type="text/javascript">
var html = '{smarty function}'; //IE chokes on mixed quotes
</script>

任何帮助表示赞赏!

最佳答案

使用 escape 修饰符,例如:

{$variable|escape:'quotes'}

对于 smarty 函数,您可以先尝试 {smarty_function|escape:'quotes'} 是否有效,如果无效,则必须在转义之前先将函数的输出分配给变量,为此您使用 capture :
 {capture name=mycapture}{smarty_function}{/capture}
 {$smarty.capture.mycapture|escape:'quotes'}

关于php - 用smarty函数的返回值做事吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2046446/

10-12 22:32