Autor Zpráva
Kebi
Profil *
Ahoj, z html jsem změnil stránku na koncovku .php a na adrese LOCALHOST (se zapnutým Apachem) jsem se pokoušel rozběhnout tu stránku, ale je psaná v xhtml. Začíná takhle:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

Řve to na mě, že první řádek není OK. Tak jsem umázl <?xml version="1.0" encoding="utf-8"?>, protože by to tam býti nemuselo, STRÁNKA se teda načetla, ale ve standartním režimu v msie a to je špatně. Proto jsem tam měl ten prolog..., co mám dělat. Můžu mít stránku php, když to bylo html, tak to bylo všechno ok...
nightfish
Profil
první řádek
<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";?>
Kebi
Profil *
Mohu se zeptat proč tomu tak je?
nightfish
Profil
je tomu tak proto, že soubor s příponou .php je zpracováván php parserem
ten narazí na počáteční <? z xml prologu a tak si řekne, že je to počátek bloku s PHP kódem
a tak považuje veškerý následující text (xml version...) považuje za PHP kód, který mu ale nedává smysl
gyoja
Profil *
Také jsem s tím měl problémy, ale pokud je v XML deklaraci kódování UTF-8, tak tam ta deklarace nemusí být. Nicméně jsem vyzkoušel radu nightfishe a rád bych se zeptal, proč se mi při použití
<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";?>

zobrazí v prohlížeči tenhle kus kódu: \n";?> jako text?
nightfish
Profil
gyoja
řešení je velmi prosté
neboť sis tu stránku otevřel v prohlížeči přímo a ne přes webserver (tzn. v prohlížeči bylo třeba file:///C:/web/test.php místo http://localhost/test.php)

EDIT: a nebo není webserver nakonfigurován na zpracování PHP skriptů a nebo soubor nemá příponu .php a nebo cokoliv jiného...
gyoja
Profil *
Jsem to ale... . No jo. Ten soubor nemá příponu PHP. Mám totiž soubor index.php a ten mi mobily přesměrovává na index.wml a prohlížeče na index.html (to je ten soubor). Jenže když jsem v index.html měl klasickou XML deklaraci, tak se nenačetl. Odstranil jsem tedy deklaraci a šlo to. Až jsem zabrousit na tento thread a zkusil jsem tu deklaraci v PHP, ale musím tedy změnit názen souboru a příponu. Že mě to nenapadlo. Omlouvám se za zbytečný dotaz a díky.
Kebi
Profil *
gyoja: Je to tak, nemusel by tam být, ale ten prolog tam mám právě proto, aby mi MSIE neskákalo do standartního režimu.

nightfish: Díky za vše, úplně poslední dotaz:

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

Proč je na konci to n? Nedává mi to smysl, ty lomítka jsou místo vnořených vnitřních závorek, to jsem pochopil, protože by to kolidovalo.
nightfish
Profil
to \n je tam kvůli odřádkování ve výsledném zdrojovém kódu
když ho tam nedáš, tak bude hned za XML prolog nalepen (v určitých případech) další řádek (většinou DOCTYPE)
otázkou je, jestli je to proti nějaké specifikaci, ale jistota je jistota...
Toto téma je uzamčeno. Odpověď nelze zaslat.