【问题标题】:escape double quotes that wraps variable that contains string with html tag <p> but preservin the linebreak转义双引号,该双引号包含包含带有 html 标签 <p> 的字符串但保留换行符的变量
【发布时间】:2016-12-21 10:34:56
【问题描述】:

我有一个变量$pesan,其中包含这样的字符串:&lt;p&gt; Hi &lt;/p&gt; &lt;p&gt; Hello &lt;/p&gt;

我使用 PHP 来回显这个代码:echo" \"$pesan\"&lt;br/&gt;-Anon";

我希望输出是这样的:

"Hi
Hello"
-Anon

但我得到的是这样的:

&lt;p&gt; Hi &lt;/p&gt;
&lt;p&gt; Hello&lt;/p&gt;
&lt;br /&gt; -Anon"

我意识到它变成了这样,因为 html 标签&lt;p&gt; 仍然存在,所以我用strip_tags($pesan); 将其删除,输出是这样的"hi Hello -Anon"

换行符消失了...所以我尝试添加nl2br()希望像strip_tags(nl2br($pesan));那样保留换行符 但输出还是和"Hi Hello -Anon"一样

我使用的代码:

<?php

   $pesan = strip_tags(nl2br($r[pesan]));

echo"<div class='wrap-testi'>
<div class='gambar-testi'><img width='100%' src='../testimoni/$r[gambar]'/></div>
<div class='preview-testi'>
<span>\"$pesan\"<br /><br />-$r[nama]</span></div>
</div>

 ?>

预期输出:

"Hi Hello" -anon

请告诉我如何实现这一目标

【问题讨论】:

  • 你真的想要输出中的

    标签吗?

    是一个块级元素,这意味着它的行为就像它之前和之后有换行符一样。

    默认也有顶部/底部边距。

  • 不是真的想要那个

    ... 但我正在使用 tinymce 文本编辑器输入证词消息,当我回显包含的变量时,我不知道保留换行符的正确方法里面的见证

  • 不要让任何人在您的网站上留下 HTML 消息 - 这是一个安全问题。仅纯文本 - 这意味着您根本不会遇到这个问题:)
  • 是这样吗?但我应该怎么做才能做到这一点?如果我知道如何在回显时保留没有 html 标记的换行符
  • 如果我可以将&lt;script src='http://example.com/myEvilScript.js'&gt;&lt;/script&gt; 放在stackoverflow cmets 上,那将是相当尴尬的——myEvilScript 会抓取document.cookie 并将其上传到某个地方。这将使我能够完全控制您的帐户(以及在您的网站上,这可能会意外地让管理员访问您的服务器,因此可能会非常严重)。

标签: php html


【解决方案1】:

使用str_replace:

$pesan = str_replace(["<p>", "</p>"], ["\n", ""], "<p> Hi </p> <p> Hello </p>");

然后nl2br:

$pesan = nl2br(str_replace(["<p>", "</p>"], ["\n", ""], "<p> Hi </p> <p> Hello </p>"));

strip_tags 删除标签,只留下纯文本。

【讨论】:

  • 感谢您的建议,但它并没有给出预期的结果。或者你能给我使用代码 sn-p 的现场演示吗?
  • 使用您的建议会是这样的$pesan = nl2br(str_replace("&lt;p&gt;", "\n",$r[pesan])); 对吗?
  • 我忘记了结束 p 标记,请参阅更新的答案。直播版:tricksfortheweb.com/bab.php
  • 谢谢,我修改了你的代码有点像这样$pesan = nl2br(str_replace(["&lt;p&gt;", "&lt;/p&gt;"],["", ""],$r[pesan]));,效果很好,它给出了预期的结果
  • 很高兴我能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
  • 2021-12-27
  • 2012-09-22
相关资源
最近更新 更多