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

PHP为何输出\n而非实际换行?终端及文本文件显示异常排查

PHP输出\n而非实际换行的解决办法

问题情况

在终端查看PHP输出或保存到文本文件时,代码没有生成实际换行,而是直接显示\n字符,不符合预期。

当前错误输出

Lopende tekst...\nVolgende zin.

预期正确输出

Lopende tekst...
Volgende zin.

使用的错误代码

<?php
$txt="Lopende tekst... Volgende zin.";
$txt=preg_replace('/(\.{3})( )([A-Z])/','\\1\n\\3',$txt);
echo($txt);
?>

解决方法

问题根源是PHP的字符串解析规则:单引号包裹的字符串中,\n会被当作普通文本字符;双引号包裹的字符串中,\n才会被解析为换行符。

方案1:替换字符串改用双引号

把preg_replace的替换参数从单引号改成双引号即可:

<?php
$txt="Lopende tekst... Volgende zin.";
$txt=preg_replace('/(\.{3})( )([A-Z])/',"\\1\n\\3",$txt);
echo($txt);
?>

方案2:使用PHP_EOL适配多系统

如果需要兼容不同操作系统的换行规则(Windows用\r\n,类Unix系统用\n),可以用PHP内置的PHP_EOL常量替代\n:

<?php
$txt="Lopende tekst... Volgende zin.";
$txt=preg_replace('/(\.{3})( )([A-Z])/',"\\1".PHP_EOL."\\3",$txt);
echo($txt);
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:03:18