如何使用不带引号的 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' 的数据库值,必须在打印前进行编码
&lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;
上面 php 代码的编码输出是
<h1 class="ql-align-center">TEST</h1>
但是因为我正在使用 echo 来打印.... php 用引号将其包裹并且 <h1>
标签变成纯文本而不是 html 元素
如果您在 echo-ing 时尝试替换这些引号怎么办?
就像你制作正则表达式来替换它,或者你制作一个函数来替换你想要的两个部分,比如 str_replace('”<', '<', $yourDecodedHtml)
,
str_replace('>”', '>', $yourDecodedHtml)
我不知道引号来自哪里 - 您问题中的代码没有添加额外的引号,所以它们来自其他地方。
但是,如果您希望 HTML 字符串呈现为 HTML 而不是将标签显示为文本,您可以执行以下操作:
从变量中的这个值开始:
&lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;
displayed as: <h1 class="ql-align-center">TEST</h1>
...您可以使用 html_entity_decode
对其进行解码,这将为我们提供以下输出,即将其转换为一个字符串,当您回显它时,该字符串将显示为纯文本 HTML:
<h1 class="ql-align-center">TEST</h1>
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');
?>
我正在尝试打印一些 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' 的数据库值,必须在打印前进行编码
&lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;
上面 php 代码的编码输出是
<h1 class="ql-align-center">TEST</h1>
但是因为我正在使用 echo 来打印.... php 用引号将其包裹并且 <h1>
标签变成纯文本而不是 html 元素
如果您在 echo-ing 时尝试替换这些引号怎么办?
就像你制作正则表达式来替换它,或者你制作一个函数来替换你想要的两个部分,比如 str_replace('”<', '<', $yourDecodedHtml)
,
str_replace('>”', '>', $yourDecodedHtml)
我不知道引号来自哪里 - 您问题中的代码没有添加额外的引号,所以它们来自其他地方。
但是,如果您希望 HTML 字符串呈现为 HTML 而不是将标签显示为文本,您可以执行以下操作:
从变量中的这个值开始:
&lt;h1 class=&quot;ql-align-center&quot;&gt;TEST&lt;/h1&gt;
displayed as: <h1 class="ql-align-center">TEST</h1>
...您可以使用 html_entity_decode
对其进行解码,这将为我们提供以下输出,即将其转换为一个字符串,当您回显它时,该字符串将显示为纯文本 HTML:
<h1 class="ql-align-center">TEST</h1>
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');
?>