数据库迁移后 PHP 在输出缓冲区中有换行符

After database migration PHP has newline in output buffer

昨天我将 MySQL 数据从一个 RDS 迁移到另一个,唯一的区别是我迁移到的那个启用了 AWS 的新加密功能。

一切都很好,除了自迁移以来我们的输出缓冲区中有一个持久的“\n”。更奇怪的是,我们的 "legacy" 代码和 Laravel 代码都是如此,它们不共享相同的包含文件/模板。

这已经破坏了我们的很多功能,我们不得不采用一种绷带方法来清除缓冲区,然后再回显值或向服务器发送范围请求以进行视频流处理。

我们的应用程序服务器(PHP/Apache 在线)发生的唯一变化是 RDS 的连接字符串。其他一切都保持不变,我们甚至没有更改任何代码。

综上所述,还有其他人 运行 参与其中吗?我们没有 'auto_prepend_file' 并且我们的应用程序在这种环境中 运行 已经 运行 一年多了。唯一的变化是字面上指向一个不同的数据库,该数据库恰好在静态时被加密。

如有任何见解,我们将不胜感激。

原来是我的错!我们的全局配置文件(确实包含一个结束 PHP 标记)昨天在结束标记之后引入了一个新行。此文件包含在全球范围内,这就是为什么我们到处都能看到这个问题。

    .... your code
?>
(new line here resulting in the end of the world)

问题已解决,所有问题都可以通过 而不是 使用结尾 PHP 标签来避免。希望这对其他人有帮助!