Autor Zpráva
Shippy
Profil
Prosím, poraďte...
Snažím se tvořit stránky xHtML validní a zároveň je dělat v PHP. Pokud je ale na začátku hláška <?xml version="1.0"?> a poté, třeba po </head>, <?php include "menus.php"; $stranka = "news"; ?> (teď tahám z hlavy), PHP následně nevykoná skript a okamžitě hlásí parse error on line 1. Zatím jediné řešení, na které jsem přišel, je tu <?xml ?> vsuvku mazat. Jak to udělat tak, aby se nic nemuselo mazat a zároveň to PHP bralo? (pozn. zkouším to na domácně nainstalovaném Apache, instalace z phpTriad...)
Předem díky. Shippy
Martin Kuželka
Profil
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&t opic=1746
Fred
Profil
Martin Kuželka Koukal jsem v té odkazovaný diskusi na ten odkaz Víta Dlouhého na to doplněno dole. Používám tenhle zápis , je to vůbec dobře ? (funguje bez problémů)

<<? ?>?xml version="1.0" encoding="windows-1250"?<? ?>>
Martin Kuželka
Profil
Frede, to by mě fakt nenapadlo, pěkný :) Doufám, že v tom není žádný problém...
Leo
Profil
No je to mirne divoky reseni, co vam vadi na vypisu pres echo? Leo
Fred
Profil
Nevadí mi nic, tohle jsem kdysi našel na nějakém zahraničním fóru a funguje to bez problémově. Ptám se, protože Vít Dlouhý na konci toho článku píše : Pro PHP generování XML dokumentů je lépe použít namísto zápisu <? správnější formu <?php. Tak nevím proč je to lépe, co může nastat za problém?
Martin Kuželka
Profil
Mně nic na vypisování přes echo nevadí :-)
llook
Profil
<<? ?>?xml version="1.0" encoding="windows-1250"?<? ?>>
Pěkný, napadají mě ale dvě věci - mělo by se používat "<?php ?>" namísto "<? ?>" a stačí dát tu vsuvku na začátek:
<<?php ?>?xml version="1.0" encoding="windows-1250"?>

Možná to budu používat místo echa, líbí se mi to.
izsak
Profil
Fred
PHP zo sebou v prvých verziách prinieslo nechutnosti ako skrátený zápis pre <?php (= iba <?) alebo register_globals.
Nové verzie PHP sa tieto (bezpečnostné) problémy odstraňujú a teda register_globals je vypnutý a tiež používanie <? v nich býva vypnuté.

<?php je prenostiteľné a kompatibilné.
krteczek
Profil *
Zdarec,
měl jsem podobný problém, a hledal jsem jak to vyřešit, až jsem našel tohle řešení:
<?php echo '<'.'?'.'xml version="1.1" encoding="UTF-8" ?'.'>'; ?>
krteczek
llook
Profil
Fred
co může nastat za problém
Při určitém nastavení (short_open_tag = Off) PHP nebere to co je ohraničené <? a ?> jako kód PHP, takže to nezpracuje ale odešle klientovi. Ale ještě jsem na žádném serveru toto nastavení neviděl.
Fred
Profil
izsak Díky za vysvětlení, budu tedy používat upravený zápis co sem dal llook :-)
llook
Profil
Tak to shrnu. Jsou v podstatě dva způsoby:
Jeden způsob:
<<?php ?>?xml version="1.0" encoding="windows-1250"?>
Druhý způsob:
<?php echo '<?xml version="1.0" encoding="windows-1250"?>'; ?>
Fred
Profil
llook Dík za to vysvětlení, když jsem to posílal tak to tam ještě nebylo, teď už to chápu :-)
mareceek
Profil *
Zrovna řeším tento problém, leč marně, validátor mi to pořád nebere (strict).
Ani jedno ani druhé a ani nic jiného.
Toto téma je uzamčeno. Odpověď nelze zaslat.