我试过nl2br()
以及所有在注释here中列出的方法。我遇到的问题是,即使他们插入了<br/>
,\n
仍然保留在文本中。如何用<br>代替PHP
这是我最初做:
<?php
$stmt = $db->prepare(...)
$stmt->execute();
while ($row = $stmt->fetch()) {
$tldr_clean = nl2br($row['tldr']);
$body_clean = nl2br($row['body']);
?>
<section>
<h2 class="tldr"><?= $tldr_clean ?> <?= $row['score']?>/10</h2>
<p class="body"><?= $body_clean ?></p>
<p class="reviewer">Written by <?= $row['name'] ?></p>
</section>
<?php
} ?>
假设$row['body']
是"Hello\nGoodbye"
,在HTML输出结果是:
Hello\n
Goodbye
我一直在使用该方法nl2br()
直接与字符串尝试即存储在数据库中,并且它正常工作。所以我猜测问题是用变量调用方法?我该如何解决它?
编辑:
字符串作为NVARCHAR2存储在SQLite表中。
字符串存储在数据库:。
“Fusce履历普鲁斯tristique,efficitur悲等,tristique赌注Aliquam SAPIEN nisl,sagittis ID斯托eget,placerat ultrices nisl在的Tempus sollicitudin mauris UT feugiat Pellentesque imperdiet在risus ex dictum,sed tempus est pulvinar。Nunc nec leo fringilla diam sodales euismod sed sed odio。\ n Cras mollis,quas at iaculis semper,justo dui maximus tellus,quis dictum urna velit sit amet justo。Curabitur consectetur fringilla arcu,sit amet ultrices est dignissim eget。Etiam non dapibus justo,et semper quam。Suspendisse tristique augue sit amet gravida euismod。Ut tempus metus quis nisl sagittis volutpat。Nam rhoncus diam luctus dictum tristique。“
你必须在那里有一个文字'\ n'。检查你的插入值,确保你实际插入了一个换行符,而不是反斜杠和n。 – Devon
该文档显示“在所有换行符(\ r \ n,\ n \ r,\ n和\ r)之前插入了
或
的返回字符串。”因此,这是预期的行为 –
请在此处查看接受的答案:http: //stackoverflow.com/a/8627926/5530965也许它作为HTML实体保存在数据库中? –