smarty 通过 php 处理强(文本)格式 -> 仅输出修改后的 php

在classes文件中准备了一个用php修改的字符串。现在在 smarty 模板 (tpl) 文件中输出字符串时我得到了错误的文本格式。该项目使用 smarty 3.1-DEV 和 php 5.6。


我有这个 php 代码并在 php 类文件中分配了变量:


    $pattern = '/' . implode('|', $allergens_searchnames) . '/iu';

    echo preg_replace_callback($pattern, function ($m) { 

    return mb_strtoupper($m[0]); }, $prodIngredients);

    }

    $this->assign("articleIngredients", $prodIngredients);

通过类文件直接使用“回声”输出我在前端获得所需的格式:“成分:杏子(75%),糖,柠檬汁,胶凝剂:果胶(来自苹果)”


对 smarty 输出的实施是错误的:“成分:杏子 (75%)、糖、柠檬汁、胶凝剂:果胶(来自苹果)”


就像我在 tpl 文件中实现的那样:


<span class="pull-right">

{if isset($articleIngredients)}

<p>{$articleIngredients|unescape:'html'}</p>

{/if}   

</span>

由于我对这个项目和聪明人知之甚少,几乎不可能为我解决这个问题。任何帮助表示赞赏。


白衣染霜花
浏览 123回答 2
2回答

慕桂英4014372

我认为这两个中的一个可能会对您有所帮助。尝试使用 unescape:'htmlall' 或尝试将文本打印为文字文本<span class="pull-right">{if isset($articleIngredients)}<p>{$articleIngredients}|unescape:'htmlall'}</p>{/if}  {literal}{/literal} 标签内的任何内容都不会被解释,而是按原样显示。<span class="pull-right">{if isset($articleIngredients)}<p>{literal}{$articleIngredients}{/literal}</p>{/if}   </span>

慕后森

问题是将所有不同的可能性硬编码为两个数组。也许我可以为此找到另一种解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP