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


After database migration PHP has newline in output buffer

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

一切都很好,只是由于迁移,我们的输出缓冲区中有一个持久的"''n"。更奇怪的是,这在我们的"遗留"代码和Laravel代码中都是正确的,它们不共享相同的包含文件/模板。

这扰乱了我们的许多功能,我们不得不采用绷带式的方法,在回显值或向服务器发送范围请求(如视频流)之前清除缓冲区。

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

话虽如此,还有其他人遇到过这种情况吗?我们没有"auto_prepend_file",我们的应用程序在这种环境中运行已经一年多没有问题了。唯一的变化是指向一个不同的数据库,而这个数据库恰好在休息时被加密

任何见解都将不胜感激。

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

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

问题解决了,所有这些都可以通过而不是使用结束PHP标记来避免。希望这能帮助其他人!