我有一个构建多行字符串的函数,需要将其作为 JavaScript 变量回显,因此在构建字符串之后,我通过 str_replace()
运行它,然后返回它像这样:
return str_replace("\r\n", "\\\r\n", $output);
奇怪的是:这在我运行 WampServer 的开发机器上运行良好,但它不会在我的实时服务器(运行 Apache 和最新版本的 PHP 的 VPS)上的行尾添加斜杠。
例子:
return (str_replace("\r\n", "\\\r\n",
'this
is
a
test'));
开发。机:
this\ is\ a\ test
实时服务器:
this is a test
我一直在浏览文档,但不知道为什么会这样。有什么想法吗?
解决方案:
return (str_replace(PHP_EOL, '\\' . PHP_EOL,
'this
is
a
test'));
最佳答案
在 Windows 中你有\r\n 但在 Linux 中你只有\n,所以函数不匹配任何\r\n
您应该改用 PHP_EOL
关于php - str_replace() 适用于 WampServer 但不适用于实时服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769401/