我有一个函数可以构建一个需要作为JavaScript变量回显的多行字符串,所以在构建字符串之后我会通过str_replace()
运行它,然后返回它:
return str_replace("\r\n", "\\\r\n", $output);
这是奇怪的事情:这在我运行WampServer的开发机器上工作正常,但它不会在我的实时服务器(运行Apache的PHP和最新版本的PHP)的行末端添加斜杠。
示例:
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'));
答案 0 :(得分:7)
在windows中你有\ r \ n但是在linux中你只有\ n,所以这个函数不匹配任何\ r \ n
您应该使用PHP_EOL
代替