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

标签 php javascript

我有一个构建多行字符串的函数,需要将其作为 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/

相关文章:

javascript - 动态地将数据附加到 html5 视频

javascript - 选择另一个后启用 selectBox

javascript - 如何捕获输入的类型 = 'text' 清除事件?

php - 使用 PHP 发送电子邮件(防止被放入垃圾邮件文件夹)

php - MySQL/PHP : Auto-Suggest entries similar to this one

PHP 将当前数组值与前一个值进行比较

javascript - 获取反向引用值并修改这些值

javascript - 多页 Bootstrap 浏览。重定向但不开始下一页游览

php - 来自服务器的 Jquery 文件选择器

php - 如何比较 laravel 中的两个加密(bcrypt)密码