gpt4 book ai didi

php - 无法用数据库中的内容替换 php 中的\n

转载 作者:可可西里 更新时间:2023-10-31 22:56:11 25 4
gpt4 key购买 nike

我尽量避免提出愚蠢的问题,但出于某种原因,这是行不通的。我正在从数据库中检索一些文本,其中包括换行符。直接使用 echo 时,这是输出:

=== BOLD TEXT ===\nHere is some text.

这是我检索它的方式:

$row = $query->row();
$content=$row->course_content;

以下都没有任何效果.....

$content= str_replace(array("\r\n", "\r", "\n"), "<br />", $content); 
$content= str_replace("\n", " ", $content);
$content = nl2br($content);

但是,当我将其硬编码为原始语句的字符串时,

$content="=== BOLD TEXT ===\nHere is some text.";

砰!它有效...关于为什么它拒绝接受数据库输入,但手动字符串没问题的任何想法?

完整代码:

//Switch between these two:
$row = $query->row();
$content=$row->course_content;
$content="=== BOLD TEXT ===\nHere is some text.";
$content = str_replace(array("\r\n", "\r", "\n"), "<br />", $content);
$content = str_replace("\n", " ", $content);
$content = nl2br($content);
echo $content;

最佳答案

当你这样做时:

$row = $query->row();
$content=$row->course_content;
echo $content;

您真的看到输出中打印了 \n 吗?还是它实际上打印了一个换行符?

如果是前者,那么您的数据库字符串中有一个转义换行符,而不是实际的换行符。换句话说,您的数据库字符串包含两个字符 \n,这不是换行符。

请尝试使用此替代品(或除此之外,以确保完全安全):

$content = str_replace(array('\r\n', '\r', '\n'), "<br />", $content); 

single quotes syntax因为字符串导致 php 不会将两个字符 \n 转换为换行符,因此它实际上应该与数据库中的内容匹配。 (您也可以使用 \\n,其中第一个斜杠转义第二个斜杠,防止它变成换行符。)

编辑:回答您的问题,假设您的意思是 mysql_real_escape_string ,那么是的,这是预期的行为。来自文档:

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \ , ', " and \x1a.

关于php - 无法用数据库中的内容替换 php 中的\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277769/

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