在mysqli fetch_assoc()PHP中保留换行符

在mysqli fetch_assoc()PHP中保留换行符,php,mysqli,Php,Mysqli,我正在尝试使用以下代码从MySQL数据库中获取所有行: $sql = "SELECT * FROM myTable"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { $output[]=$row; } echo json_encode($output); 我的问题是,如何使用此代码保留换行符?例如,当我需要特定字符串时,我可以使用nl2br()保留换行符 nl

我正在尝试使用以下代码从MySQL数据库中获取所有行:

$sql = "SELECT * FROM myTable";
$result = $conn->query($sql);
    while($row = $result->fetch_assoc()) {
        $output[]=$row;
    }
echo json_encode($output);
我的问题是,如何使用此代码保留换行符?例如,当我需要特定字符串时,我可以使用nl2br()保留换行符

nl2br($_row['fieldName']);
但是我想知道在数组中获取结果时如何使用相同的nl2br()

我也提到过,但这只解释了单个字符串,而不是数组


如果没有其他方法,请建议我其他方法。

您需要确切了解json必须发送的文本流类型。使用php的nl2br函数,当浏览器呈现HTML时,将在用于显示换行符的换行符之前插入一个名为“br”的HTML标记。如果使用此json流提供的应用程序需要纯文本而不是HTML,则使用nl2br不是正确的解决方案。在这种情况下,我建议在将换行符作为参数发送到json_encode函数之前,在字符串中用转义序列“\n”替换换行符,并充分处理json流消费者代码中的解码,以了解您想对它、html或其他任何东西做什么。
在这种情况下,可能会有所帮助。

使用
array\u map
可以调用该函数,因此通过每个
$row
的值可以获得值

$sql = "SELECT * FROM myTable";
 $result = $conn->query($sql);
     while($row = $result->fetch_assoc()) {
         $output[]=array_map("nl2br",$row);
     }
echo json_encode($output);

这是一个误导性的答案。从PHP手册:返回在所有换行符之前插入了

的字符串(\r\n\n\r\n和\r)。