PHP如何将"\n"转换成换行符

3

如何使使用单引号声明的字符串,评估 \n 就像使用双引号声明一样?

例如:

echo 'Line1\nLine2'; // Does not split.
echo "Line1\nLine2"; // It splits.

$s = 'A string declared using \n single quotes which I can\'t change...';
echo $s // I need this to have the split at \n
3个回答

7
你只需要使用str_replace函数将它们替换为实际的换行符即可:
$s = str_replace('\n', "\n", $s);

请参考 https://3v4l.org/j0etV

如果您要将其显示为HTML,请注意还需要运行nl2br(如果您使用的是模板引擎,则可能已经为您完成此操作)。


如果您已经在使用substr,并且您知道所有的新行都是\n类型的,那么我建议直接用br标签替换。虽然只有一个调用而不是两个调用看起来没有太大的区别,但这些小调用会消耗资源,如果您需要多次执行此操作,则会更加明显。 - Virre
有没有通用的解决方案可以处理像 \n、\s、\t、\u0026 等其他代码? - Paulo Costa

2

首先你需要修复你的字符串。用 \' 代替 ',然后你需要使用 str_replace()

$s = 'A string declared using \n single quotes which I can\'t change...';
$s= str_replace('\n', "\n", $s);

2

你能使用str_replace()函数替换'中的\'吗?

$s = 'A string declared using \n single quotes which I can\'t change...';
$s= str_replace('\n', "\n", $s);

或者使用以下语法
nl2br($s);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接