为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白衣染霜花 2023-04-21 16:30:28
在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>由于我对这个项目和聪明人知之甚少,几乎不可能为我解决这个问题。任何帮助表示赞赏。
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我认为这两个中的一个可能会对您有所帮助。尝试使用 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>

查看完整回答
反对 回复 2023-04-21
?
慕后森

TA贡献1802条经验 获得超5个赞

问题是将所有不同的可能性硬编码为两个数组。也许我可以为此找到另一种解决方案。


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信