我需要变量中的 HTML 特殊字符

问题描述

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

我怎么能这样做?

例如:

我的文字

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

但我需要:

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

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

解决方法

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

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

我个人建议遵循 Watercayman's answer,但如果您真的想按照目前的方式进行操作,则可以使用:

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

详见documentation

解释两者的区别:

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

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

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