【问题标题】:I need HTML special characters in variable我需要变量中的 HTML 特殊字符
【发布时间】:2021-08-29 23:24:27
【问题描述】:

我有一个 PHP 变量,我需要使用富文本格式(如粗体),但我的代码无法实现。

我该怎么做?

例如:

我的文字:

<td>{{ $item->item_category->name ?? "Eliminaste esta Categoría" }}</td>

但我需要:

<td>{{ $item->item_category->name ?? "<b>Eliminaste esta Categoría</b>" }}</td>

我尝试了最新的代码,但它不起作用。

【问题讨论】:

  • <td><b>{{ $item->item_category->name ?? "Eliminaste esta Categoría" }}</b></td> ?
  • 你好,我只需要如果值为null,它只会变成粗体。您消除了此类别而不是其他值。这就是为什么我只将 放在值“Eliminaste esta Categoría”中
  • “它不起作用。” - 所以请解释发生了什么,以及它与您的预期有何不同。
  • 就个人而言,我建议您遵循 Watercayman 的回答,但如果您真的想按照目前的方式进行操作,您可以使用 {!! $item->item_category->name ?? "<b>Eliminaste esta Categoría</b>" !!},详细信息请参见 documentation
  • @Kirk Beard 把它作为一个答案请把它作为一个出色的答案朋友你很棒

标签: php html laravel laravel-blade


【解决方案1】:

我个人建议关注Watercayman's answer,但如果你真的想按照现在的方式做,你可以使用:

{!! $item->item_category->name ?? "<b>Eliminaste esta Categoría</b>" !!} 

详见documentation

解释一下两者的区别:

{{ $var }} 运行 echo htmlspecialchars($var);,它做了几件事,包括将 &amp;lt;b&amp;gt; 转换为 &amp;lt;b&amp;gt;

运行替代{!! $var !!} 只是简单地执行echo $var

您可能(应该)使用第一个选项的原因是清理用户提交的数据以防止潜在的安全风险。在您的情况下,由于它是您编写的硬编码字符串,因此这应该不是问题。

【讨论】:

  • 你是最棒的。我已经坚持了很长时间。谢谢!!
  • @EduardoRafael 不用担心,很高兴我能帮上忙 :)
【解决方案2】:

将潜在危险的数据值转义,然后将您添加的文本(已知文本)取消转义为简单的纯 html:

@if(isset($item->item_category->name))
    <td>{{ $item->item_category->name }}</td>
@else
    <td><b>Eliminaste esta Categoría</b></td>
@endif

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多