Буферизация вывода PHP содержит что-то до начала скрипта

У меня есть сайт, где я буферизую некоторый вывод с помощью

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 (); содержит

ноль

возможно ли, что у вас есть «» перед вашим <?php где-то? или неправильная кодировка файлов, как правило, это своего рода характер, проверьте ваши файлы и включите файлы.

Теперь у меня иногда есть что-то в выходном буфере, прежде чем я назову его в первый раз

Это будет намного проще, если вы дадите нам некоторую информацию об этих таинственных данных.

возможно, случай с характером спецификации? больше информации здесь

я нашел это:

у меня не было невидимого персонажа впереди, это было что-то другое: я назвал ob_end_clean () один раз слишком много:

это был мой код, внутри функции, которую я вызываю:

 function print_something(){ ob_start(); echo some stuff... echo ob_get_clean(); ob_end_clean(); // this was the bug! } 

кажется, что вы можете очистить свой основной буфер вывода;)