Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
asanos
Člen
Avatar
asanos:29.4.2014 23:52

Dnes jsem se dostal do problému s short_open_tag v php, kdy jsem uvnitř

<?php
...
?>

potřeboval definovat XML kódování.
Jak asi tušíte, objevila se tam chybka. ;)
_____________­_____________
Zjednodušeně, dělal jsem si třídu pro parsování dat z DB do XML a všechno jsem strkal do jednoho řetězce, ve kterém jsem na začátku potřeboval definovat XML kódování.

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

Problémem je, že <?php je uzavřeno koncovým ?> u kódování XML.
_____________­_____________
Řešení téhle prkotiny je následující:

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

Doufám, že až se někdy střetnete s tímto problémem, vzpomenete si na mě a můj topic. ;)

_____________­_____________

  • Tímto se nechci pochlubit, ale poukázat na takovou blbost, co dokáže potrápit programátora i na 2 hodiny.

Chybu mi totiž řvalo XML a ne php, tak jsem nevěděl, kde je problém. :D

Pokud někdo zná elegantnější řešení, tak sem s ním, budu velmi rád. ;)

Odpovědět
29.4.2014 23:52
Na světě je 10 typů lidí. Ti, kteří rozumí binárce a ti co nerozumí.
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na asanos
Juraj Mlich:30.4.2014 11:21
<?php
header('Content-Type: text/xml');
?>
 
Nahoru Odpovědět
30.4.2014 11:21
Avatar
asanos
Člen
Avatar
asanos:30.4.2014 11:31

jj, to je samozřejmost :D
Teda pokud se jedná o okamžitý report na web... Pokud to budu nahrávat do souboru (nějakého feedu - což je asi častější) tak to je jiná ...

Editováno 30.4.2014 11:33
Nahoru Odpovědět
30.4.2014 11:31
Na světě je 10 typů lidí. Ti, kteří rozumí binárce a ti co nerozumí.
Avatar
Neaktivní uživatel:1.5.2014 0:11

Prostě vypni short_open_tags, stejně jsou k ničemu. :D Myslím, že to dokonce jde udělat i přes .htaccess v Apache.

Nahoru Odpovědět
1.5.2014 0:11
Neaktivní uživatelský účet
Avatar
asanos
Člen
Avatar
Odpovídá na Neaktivní uživatel
asanos:1.5.2014 0:20

Tak to máš teoreticky pravdu :D
Jde to myslím i přes ini_set()...

Editováno 1.5.2014 0:21
Nahoru Odpovědět
1.5.2014 0:20
Na světě je 10 typů lidí. Ti, kteří rozumí binárce a ti co nerozumí.
Avatar
mkub
Tvůrce
Avatar
Odpovídá na asanos
mkub:3.5.2014 13:27

polozku na vipnutie short_open_tags najdes v php.ini, tam to zakaz a pouzivaj namiesto tagov <?...?> tagy <?php...?>
a dalsie upozornenie: PHP script ked nemusis ukoncovat, nepis koncovu znacku ?>, PHP ked narazi na koniec suboru, automaticky ju doplni (inak sa moze stat, ked ti editor vlozi na koniec suboru prazdny riadok, tak PHP parser automaticky vygeneruje vystup a moze vzniknut iny problem - problem s headerom...
ale ak je PHP uprostred HTML, tak ukoncovacia znacka je potrebna

 
Nahoru Odpovědět
3.5.2014 13:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.