Autor | Zpráva | ||
---|---|---|---|
Petr Dlouhý Profil * |
#1 · Zasláno: 6. 3. 2008, 16:53:43
Dobrý den,
chtěl bych se zeptat, jestli je možné udělat soubor, který by se tvářil zároveň jako php i xml (konkrétně svg). Jde o to, že by se měl soubor tvářit jako xml po interpretaci pomocí php, ale i před ní. V kódu není problém to udělat. Stačí použít následující trik: <!-- <?php print "-"."->\n"; require("mapobject.php"); print "<!-"."- "; ?> --> Potom je pro php je vše v pořádku (xml/html komentářů si nevšímá, takže vygeneruje prázdné komentáře), pro xml je také vše v pořádku - je to komentář. Problém nastává u hlavičky. Jestli to dobře chápu, tak v korektním xml musí být na začátku (od prvního bajtu) něco jako: <?xml version="1.0" encoding="UTF-8" standalone="no"?> Kámen úrazu je v tom, že tuto hlavičku považuje php za svůj vlastní kód, a tedy skončí chybou. Dá se to nějak vyřešit, abych mohl soubor zároveň upravovat v Inkscape a zároveň nechat modifikovat pomocí php? |
||
bukaj Profil |
#2 · Zasláno: 6. 3. 2008, 19:10:16
Petr Dlouhý
Jednoduše: <?php echo "<?xml";?> version="1.0" encoding="UTF-8" standalone="no"?> |
||
Str4wberry Profil |
#3 · Zasláno: 6. 3. 2008, 19:12:53
Odpovídám Petru Dlouhému:
Viz FAQ k PHP. |
||
Chamurappi Profil |
#4 · Zasláno: 6. 3. 2008, 19:35:38
Reaguji na Petra Dlouhého:
„V kódu není problém to udělat. Stačí použít následující trik“ Není potřeba. Zápis <?php něco ?> je správně sestavený kousek XML. |
||
Chamurappi Profil |
#5 · Zasláno: 6. 3. 2008, 19:49:19
A ještě jednou reaguji na Petra Dlouhého:
„Jestli to dobře chápu, tak v korektním xml musí být na začátku (od prvního bajtu) něco jako“ Nemusí. Pokud užíváš XML 1.0 a kódování máš UTF-8 (nebo ho deklaruješ v HTTP hlavičce Content-Type), můžeš XML deklaraci v klidu vynechat. |
||
Petr Dlouhý Profil * |
#6 · Zasláno: 6. 3. 2008, 20:38:53
Chamurappi:
Máte pravdu, ten komentář není nutný. Budu ho tam ale stejně muset nechat, protože Inkscape jinak ten php kód po uložení sežere (to je ale asi chyba Inkacape). Chamurappi: XML 1.0 používám stejně jako UTF-8 - je to napsané v té hlavičce, kterou jsem napsal. HTTP hlavičku Content-Type posílám, když to generuji z php; netuším, ale jak jí mám posílat když to otevírám v Inkscape. Nevím, jestli je to způsobené Inkscape, ale jakmile to začíná něčím jiným než "<?xml" (a stačí i prázdný řádek nebo mezera), tak to inkscape neotevře (může to ale být problém Inkscape, nevím). bukaj, Str4wberry: To faq jsem samozřejmě četl, a vygenerovat xml hlavičku z php jsem zkoušel mnoha různými způsoby, ale stejně to nepomůže abych to mohl otevřít v Inkscape bez editace. |
||
Petr Dlouhý Profil * |
#7 · Zasláno: 6. 3. 2008, 21:05:34
Chamurappi:
Poprvé jsem vás ne úplně pochopil. Máte pravdu - když to <?xml... vynechám úplně, všechno funguje jak má (pokud tam ale je, tak musí být hned od začátku). Díky moc. |
||
Kajman_ Profil * |
#8 · Zasláno: 6. 3. 2008, 21:07:58
Možná by též pomohlo nastavit v php disable-short-tags.
|
||
Časová prodleva: 16 let
|
0