如何使用不带引号的 php echo 来回显 html 代码?

How to use php echo without quotes to echo html code?

我正在尝试打印一些 html 代码,这些代码未存储为简单字符串,因此我需要在回显之前对其进行解码,我的问题是当我回显我保留的解码值时得到这些引号,它们破坏了输出,这就是它的样子:

<div>
"<h1 class="ql-align-center">TEST</h1>"
</div>  

因此,由于这些引号," h1 无法形成并且它作为文本而不是作为 html 代码打印出来。 所以我想知道是否可以打印为 html 代码,意思是没有引号 "" ?

这是它生成的 php 代码

<?php echo html_entity_decode($singleEmail['camp_desc'], ENT_NOQUOTES, 'UTF-8'); ?>

这也是 'camp_desc' 的数据库值,必须在打印前进行编码

&amp;lt;h1 class=&amp;quot;ql-align-center&amp;quot;&amp;gt;TEST&amp;lt;/h1&amp;gt;

上面 php 代码的编码输出是

<h1 class="ql-align-center">TEST</h1> 

但是因为我正在使用 echo 来打印.... php 用引号将其包裹并且 <h1> 标签变成纯文本而不是 html 元素

如果您在 echo-ing 时尝试替换这些引号怎么办?

就像你制作正则表达式来替换它,或者你制作一个函数来替换你想要的两个部分,比如 str_replace('”<', '<', $yourDecodedHtml)str_replace('>”', '>', $yourDecodedHtml)

我不知道引号来自哪里 - 您问题中的代码没有添加额外的引号,所以它们来自其他地方。

但是,如果您希望 HTML 字符串呈现为 HTML 而不是将标签显示为文本,您可以执行以下操作:

从变量中的这个值开始:

&amp;lt;h1 class=&amp;quot;ql-align-center&amp;quot;&amp;gt;TEST&amp;lt;/h1&amp;gt;

displayed as: &lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;

...您可以使用 html_entity_decode 对其进行解码,这将为我们提供以下输出,即将其转换为一个字符串,当您回显它时,该字符串将显示为纯文本 HTML:

&lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;

displayed as: <h1 class="ql-align-center">TEST</h1>

...现在我们需要解码 this 以将其转换为将在页面中显示为 H1 标签的 HTML 元素:

<h1 class="ql-align-center">TEST</h1>

displayed as: TEST

代码: 为此,您需要调用 html_entity_decode 两次,然后才会将字符串显示为 HTML 元素:

<?php  
$htmlstr = html_entity_decode($singleEmail['camp_desc'], ENT_QUOTES, 'UTF-8');
echo html_entity_decode($htmlstr, ENT_NOQUOTES, 'UTF-8');  
?>