str_replace()适用于WampServer但不适用于实时服务器?

时间:2012-12-07 19:02:50

标签: php javascript

我有一个函数可以构建一个需要作为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'));

1 个答案:

答案 0 :(得分:7)

在windows中你有\ r \ n但是在linux中你只有\ n,所以这个函数不匹配任何\ r \ n

您应该使用PHP_EOL代替