Tach!
$meta = '<' . '?xml encoding="UTF-8" ?' . ">\r\n";
wegen der eventuell eingeschalteten Short-Open-Tags. Aber auch bei ausgeschalteten Short-Open-Tags kotzen manche PHP Verionen noch ab, wenn eine derarige Zeile "<?xml ... ?>" auskommentiert im Dokument steht. Das "?>" scheint da trotzdem zu stören.
Das <? innerhalb eines String-Literals macht keine Probleme. Das muss nicht auseinandergenommen werden. Das ?> ist ebenfalls innerhalb eines Strings problemfrei. Allerdings verliert das String-Literal und alle andere Syntax beim Auskommentieren seine Bedeutung. Ein einzeiliger Kommentar (// oder #) endet nicht nur am Zeilenende, sondern auch an einem ?> in der Zeile. Ein mehrzeiliger (/* */) allerdings lässt sich nicht durch ein ?> aus der Ruhe bringen. Das ?> ist also nur für den Fall erforderlich, dass man die Zeile einzeilig auskommentieren möchte. Für den normalen Betrieb kann man alles beides einfach so zusammenschreiben.
dedlfix.