转义包含带有html标记<p>的字符串但保留换行符的变量的双引号

时间:2016-12-21 02:19:19

标签: php html

我有一个变量$pesan,其中包含如下字符串:<p> Hi </p> <p> Hello </p>

我正在使用PHP通过以下代码回应它:echo" \"$pesan\"<br/>-Anon";

我预计输出会是这样的:

  

"Hi
  Hello"
  -Anon

但我得到的是这样的:

  

<p> Hi </p>
  <p> Hello</p>
  <br /> -Anon"

并且我意识到它变得那样,因为html标记<p>仍然存在,所以我使用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

请告诉我如何实现

1 个答案:

答案 0 :(得分:2)

使用NOPASSWD

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>")); 删除标记,只留下纯文本。