Вы, вероятно, сохранили свои файлы PHP, закодированные как UTF-8, с меткой порядка байтов (BOM). Попробуйте сохранить ваши файлы PHP, закодированные как UTF-8 без спецификации. Расширенные текстовые редакторы, такие как Notepad ++ в Windows, TextWrangler в Mac OS или большинство других расширенных текстовых редакторов, имеют такую функцию.
Другая возможность состоит в том, что у вас есть непреднамеренные пробельные символы перед любым <?php
в ваших файлах PHP, например, в этом примере одного файла PHP:
<-- here for instance
<?php
/*
some code to generate $yourXml;
*/
?>
<-- or here
<?php
echo $yourXml;
?>
... или другие непреднамеренные пробельные символы, выводимые вашим PHP-кодом.
Если вы позаботились о подобных проблемах, тогда нет необходимости в буферизации вывода. Использование буферизации вывода в качестве средства для обхода этих типов проблем является небрежной привычкой кодирования.
редактировать
Возможно, это не решит проблему, если подумать.