PHP a XML: „Na začátku externí entity chybí procesní instrukce xml“
A zase ty hvězdičky! Přes AJAX mám řešené hodnocení něčeho. Kliknu na hodnocení, pošlou se data na zpracování, server vygeneruje XML, který se vrátí ke zpracování JavaScriptem (pro změnu stavu na stránce). Nutné je zdůraznit, že data jsou ve formátu XML vrácena zcela korektně. Přesto Firebug vypisuje chybu:
Na začátku externí entity chybí procesní instrukce xml
undefined
Aby se nám to ještě trochu zamotalo, tak se tato chyba vyskytuje pouze, pokud script spouštím na localhostu. Na serveru funguje bez problémů. Chyba byla způsobena includovanými soubory.
Script, který generuje XML, obsahuje na svém začátku hlavičky s kódováním a zakázáním cache, po kterých následuje require několika souborů. Dále vytvoření několika objektů tříd, nastartování session a připojení k databázi. Zbývá už pouze hlavička pro xml a echo dat.
V jednom vkládaném souboru byl problém. Pokud vkládaný soubor obsahoval na úplném konci dva a více prázdných řádků, naskytla se výše vypsaná chyba. Při jednom prázdném řádku bylo vše v pořádku. Prázdné řádky se nacházely za poslední uzavírací ?>.
Všechny soubory byly v kódování UTF-8. Primárně pracuji v Eclipse PDT, pro jistotu jsem zkusil i PSPad, ale problém se též vyskytuje. Takže jaké je řešení? Dávat pozor na prázdné řádky.
Comments ( 3 )