XML deklarace a PHP

Zase trochu o webdesignu. Připravte se na vzrušující objevování Ameriky, kola a podobných užitečných věcí. Čtenářky, které se nezabývají tvorbou webu, zřejmě zklamu, ale tak už to v životě chodí. Bavte se zatím třeba tímhle

XML deklarace

Pokud se člověk už definitivně nevzbouřil, neodklonil od XHTML a stále ho baví psát striktně nevalidní jakožeXML dokumenty (více o těchto kravinách čtěte u Dera nebo Martina Hassmana), jistě do nich také rád vkládá XML deklaraci. Je to první řádek v kódu, jenž hřímá „já jsem XML!“ a pokud stránka používá UTF-8, není povinný. Zakládám si na používání UTF-8, ale stejně jako mne náramně vzrušuje používat XHTML, svědomí mi nedovolí XML deklaraci prostě vynechat. Holt zažité superstriktní pudy z dob evangelizace webu.

PHP

Bo su mimo jiné i PHP programátor, musel jsem po čase pokojného deklarování XML řešit jistý nedostatek symbiózy mezi jazykem a právě oním prvním řádkem dokumentu.

Zápis

<?xml version="1.0" encoding="utf-8" ?>

prostě není úplně ono, protože ty špičaté závorky a otazníčky PHP bere na sebe a server vám vrátí něco podivného, asi parse error.

Řešení

Řešení je zřejmé…

<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"; ?>

Nebo třeba

<?php echo '<?xml version="1.0" encoding="utf-8" ?>' . "\n"; ?>

Jak je ale vidět, zřejmá řešení problémů nejsou ani hezká, ani elegantní. Předkládám proto jedno ne zcela zřejmé, ale geniální řešení, které je hezké, elegantní a navíc rychlé – nepotřebuje prakticky žádný výkon PHP.

<<?php ?>?xml version="1.0" encoding="utf-8" ?>

A je to! Že se tu zabývám blbostmi? No jistě že ano! Ale proč netrávit čas psaním a čtením článků o roztomilých maličkostech ;) . A že to šlo napsat v jedné větě? Ale no tak… Jako byste mě neznali! :D

Tags: , ,

6 Responses to “XML deklarace a PHP”

  1. Gringo says:

    Jéé, reklama na komixy! Díky dobrá vílo!

  2. Maple says:

    No to je fakt kravina :-)

    Výkon to samozřejmě bere, bo musí ten tag naparsovat a pochopit a že nic nedělá, to zjistí až potom. Bude to méně výkonu než u výpisu pomocí echo, na druhou stranu bych se skoro hádal, která z těchhle variant je přehlednější. Řekl bych, že vě většině web aplikací se najde 1001 místo, které si zaslouží větší pozornost ať už co do elegantního vyřešení a nebo třeba výkonu.

    Připomnělo mi to takové ty hádanky: „přehoďťe obsah dvou celočíselných prměnných bez použití třetí“. Jednak to nelze použít vždy a po pravdě – kdybych to našel někde v kódu, tak bych autora asi přetrhl jak žížalu :-)

  3. Littlemaple says:

    Je to tak. Jako jiní géniové, za života holt zůstanu nedoceněn :D .

  4. Cr says:

    Neposlouchej je, je to dobré, dík. Začnu to používat (i ve firmě, xoxo).

  5. markoph says:

    hmmm… zaujímavé… uvidím, možno budem používať :P

  6. […] pokud použijete XML deklaraci, přijde vám na pomoc také parse error. Nelze se však na něj spoléhat a určitě je dobré vše pojistit oním PHP v komentáři, […]