首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中用<br>替换\n

如何在PHP中用<br>替换\n
EN

Stack Overflow用户
提问于 2016-12-14 19:10:49
回答 3查看 6.4K关注 0票数 1

我已经尝试过nl2br()以及注释这里中列出的所有方法。我遇到的问题是,即使他们插入了<br/>\n仍然保留在文本中。

这就是我最初做的事情:

代码语言:javascript
复制
<?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中的输出是:

代码语言:javascript
复制
Hello\n
Goodbye

我尝试使用nl2br()方法直接使用存储在数据库中的字符串,并且它正确地工作在中。所以我猜问题是在用变量调用方法时?我怎么才能修好它?

编辑:

字符串作为NVARCHAR2存储在SQLite表中。

存储在数据库中的字符串:

“弗斯维特普劳斯三位一体,功效多罗等,三位一体。[医]皂甙,矢状体,羊角。在青蒿中。无菌的不需要的饮食使人吃得很香。Nunc nec leo fringilla diam sodales euismod sed odio.\n Cras mollis,quam at iaculis semper,justo dui maximus tellus,quis dictum urna velit。库拉比图尔,神圣的边缘,坐在一起,最重要的是。Etiam non dapibus justo,et semper quam.苏斯本斯三位一体坐同孕妇。[医]矢状矢状体炎。南红-“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-14 19:38:11

如果您正在回显数据,并且在输出中看到了一个实际的\n,那么您所拥有的不是换行符,而是文字\,后面是n字符。通常,如果在代码中转换为换行符,但是如果在变量中使用字符串(例如从数据库中提取时),则不会。然后,您应该在'\n'上执行一个'\n'(注意单引号,这样它就不会被转换成换行符)。

这很可能是由您在插入时使用类似加号(将\n换行符隐藏到\\n)这样的操作完成的,或者可能是由数据库出于某种任意安全原因自动完成的,而不是返回。

票数 5
EN

Stack Overflow用户

发布于 2016-12-14 19:12:48

只需使用str_replace将所有的\n替换为<br />

代码语言:javascript
复制
$tldr_clean = str_replace("\n", '<br />', $row['tldr']);
票数 4
EN

Stack Overflow用户

发布于 2016-12-14 19:13:32

代码语言:javascript
复制
$body_clean = str_replace(
    ["\r", "\n"], 
    ['', '<br>'], 
    $row['body']
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41150331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档