gpt4 book ai didi

php-显示来自 mysql 的数据时新行不起作用

转载 作者:行者123 更新时间:2023-11-29 07:40:16 24 4
gpt4 key购买 nike

我有一个用户可以输入任何内容的表单,例如,假设用户输入:

Hello World!
This is a new line.

This was written after two new lines.

用户使用表单提交的数据插入到数据库中:

$data = mysqli_real_escape_string($dbc, $_POST['text']);
$sql = "INSERT INTO data (Data) VALUES ('$data')";
$exec = mysqli_query($dbc, $sql);

现在它存储在数据库中,但是当我从数据库中获取文本以显示给用户时,它显示:

Hello World! This is a new line. This was written after two new lines.

如您所见,新行将被忽略。我还想显示换行符。

我尝试过:

$data = mysqli_real_escape_string($dbc, str_replace('\n', '<br>', $_POST['text']));

但这也不起作用。显示mysql数据时如何显示换行符?

最佳答案

最好将用户输入不加更改地放入数据库(当然,转义除外),以防您希望查询用户输入,或稍后更改显示行为。也就是说,在构建页面并显示数据后,使用

echo nl2br(htmlspecialchars($row['text'], ENT_QUOTES));

nl2br()转换所有"\r\n""\n"<br />以便它能很好地显示。 htmlspecialchars()将用户最初在字段中输入的任何特殊字符转换为正确的 html 转义序列。

你的代码可以工作,除了你的 \n应该用双引号而不是单引号引起来。单引号字符串会忽略 PHP 中的转义序列。然而,如图所示,已经存在一个内置函数来完成此任务。

关于php-显示来自 mysql 的数据时新行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29288065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com