我有一个网站,我用
缓冲一些输出ob_start();
...
它工作正常,直到今天我将debian从较旧的 php5.3 更新为最新的 php5.3.3-7 + squeeze8
现在我有时在输出缓冲区中有一些东西,然后我第一次调用它
请不要回答
之类的事情“必须在发送任何输出之前调用标头。” (我知道,我在输出缓冲区工作很多)
当我设置一个额外的ob_get_clean();在我的脚本的第一行,它工作
<?
ob_get_clean();
似乎,像php正在预先创建一些输出
如果我把第一行放在
<? print_r(ob_get_clean()); ?>
然后我看到缓冲区中已经有一个空字符串:
“”
在其他所有页面上都没有,有ob_get_clean();包含
空
答案 0 :(得分:0)
<?php
面前有一些“”吗?或错误的文件编码通常会发出某种性质,检查您的文件并包含文件。
答案 1 :(得分:0)
现在我在调用它之前有时会在输出缓冲区中有一些东西 第一次
如果您向我们提供有关该神秘数据的一些信息,那将会容易得多。
答案 2 :(得分:0)
也许是BOM字符的情况? 更多信息here
答案 3 :(得分:0)
我前面没有看不见的角色,这是不同的东西:我曾多次调用ob_end_clean():
这是我的代码,在我调用的函数中:
function print_something(){
ob_start();
echo some stuff...
echo ob_get_clean();
ob_end_clean(); // this was the bug!
}
看起来,您可以清除主输出缓冲区;)