Byte Order Mark и PHP

Byte Order Mark, он же BOM. Три байта в начале файла в кодировке UTF-8 (EF BB BF), которые могут сильно попортить нервы, если о них не знать.

Все заголовки должны отсылаться до отсылки данных, но у нас данные (три наших BOM-байта) уже встретились. Соответственно получаем:

Warning: Cannot send session cookie - headers already sent
Warning: Cannot send session cache limiter - headers already sent

Происходит это из-за давнего бага №22108, который исправят только в PHP6 с полным переходом на Unicode.

Хорошо, что способ борьбы довольно простой: отключить сохранение BOM в своём редакторе.

Записи