You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB读取文本中\n不生效,拼接的\n正常的问题修复方案

问题修复:MongoDB获取文本中的\n无法换行

问题原因

从MongoDB读取的$n->mensagem里的\n是字面量字符(即实际存储的是\和n两个独立字符),而非PHP能识别的换行转义符。而代码中直接拼接的"\n"是PHP解析后的换行符,所以只有后者能触发换行。nl2br函数仅对真正的换行符生效,对字面量\n不起作用。

修复方案

方案一:直接替换字面量\n为换行符

使用str_replace将文本中的字面量\n替换成PHP的换行符:

// 先替换数据库文本里的字面量\n为换行符,再拼接内容
$mensagem = str_replace('\n', "\n", $n->mensagem) . " \n\n\naaaa";

app(Rocketchat::class)->sendMessage(
    $n->getAlvo(), 
    $mensagem
);

方案二:去除转义符(适用于存储时多转义的情况)

如果MongoDB中的文本是因为存入时被额外转义(比如存储的是\\n),可以用stripslashes去除转义:

$mensagem = stripslashes($n->mensagem) . " \n\n\naaaa";

app(Rocketchat::class)->sendMessage(
    $n->getAlvo(), 
    $mensagem
);

注意:stripslashes会处理所有转义字符(如\"转成"),如果你的文本中有其他需要保留的转义内容,优先用方案一。

内容的提问来源于stack exchange,提问作者Guilherme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:47:10