我们的网站已经运行了几年,但发生了一些变化,这真的很奇怪。我已经尝试与主机交谈,但没有任何问题得到解决。
问题是第<?php
一个包含文件中第一个标记之前的所有内容在进入 OB 之前直接输出
例如:
<?php
ob_start();
?>
<h1>Welcome</h1>
<?php
include('contentbox1.php');
include('contentbox2.php');
include('contentbox3.php');
?>
<b>Bye</b>
<?php
$content = ob_get_contents();
ob_end_clean();
echo("Included{".$content."}");
?>
得到的输出是这样的:(注意这<h1>Welcome</h1>
不是缓冲区内输出的其余内容)
<h1>Welcome</h1>
Included{
<div id="contentbox1"></div>
<div id="contentbox2"></div>
<div id="contentbox3"></div>
<b>Bye</b>
}
正确的输出应该是什么(并且在我的本地机器上):
Included{
<h1>Welcome</h1>
<div id="contentbox1"></div>
<div id="contentbox2"></div>
<div id="contentbox3"></div>
<b>Bye</b>
}
它给我们的网站造成了重大问题,我不知道为什么。它在我的本地机器上完美运行,而不是我们多年来一直使用的主机。
解决方案:
事实证明,当我重新上传 时test.php
,我网站上的内容框和许多其他文件变得有趣并且可能已损坏。一旦我重新上传了我的整个网站(即使没有发生代码更改),我运行缓慢的网站现在超级快,所有问题都消失了。我的文件也被其他主机损坏了,所以如果你将来也有奇怪的东西,请记住这一点。