PHP 5.2.3 + require_once() fv + XML kimenet --> hol a hiba???
Egy érdekes problémába ütköztem, amit megoldottam, de igazából nem jöttem rá, hogy mi okozza a hibát, vagy egyáltalán hogyan kellene csinálni :?
index.php:A _config.php-ban változók tömege van, ami pl az adatbázishoz csatlakozáshoz kell.
xml.php:Eredetileg itt DOM-mal egy tömbből készül az XML, de már annyira kiakadtam, hogy nem megy, inkább a netről leszedtem egy ELMÉLETILEG biztosan működő példát :D
Tehát ez elméletileg és gyakorlatilag is azt az eredményt adja, hogy:Jobb klikk-->Forrás megtekintése műveletre valóban ezt írja ki. DE! A Firefox meg ezt írja ki:
Mindegy, hogy mit íratok ki, a hiba mindig a második karakter lesz. Ha telenyomom szóközökkel az elejét, akkor is, ha törlöm a legelső sort, akkor is. Ha include() van a require_once() helyett, akkor is ez a jelenség. Ha van egy beillesztés az utolsó sor előtt, akkor halál. Ha kikommentezem őket, akkor működik.
A jelenlegi megoldás:Jé, és működik :-/ FireBuggal megnéztem, hogy mit küld vissza a rendszer a egyik és mit a másik esetben. Az egyetlen különbség, hogy a válasz header-ben a Content-Length értéke 6 byte-al kevesebb (amikor jó). De amikor megnézem a forrást, ezt a 6 byte-ot sehol nem találom. Se szóköz formájában, se sehogy máshogy.
Tudja vki a megoldást erre a számomra különös problémára?
Chris :)
■ index.php:
<?php
require_once('inc/_config.php');
// Egyéb dolgok, amiket a tesztelés során kikommenteztem.
require_once('response/xml.php');
?>
xml.php:
<?php
header('Content-type: text/xml; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>
<DOKUMENTUMELEM>
valami szoveg
<VALAMIELEM>valami szoveg</VALAMIELEM>
</DOKUMENTUMELEM>';
?>
Tehát ez elméletileg és gyakorlatilag is azt az eredményt adja, hogy:
<?xml version="1.0" encoding="utf-8"?>
<DOKUMENTUMELEM>
valami szoveg
<VALAMIELEM>valami szoveg</VALAMIELEM>
</DOKUMENTUMELEM>
XML feldolgozási hiba: nem jól formázott
Hely: http://...
1. sor, 2. oszlop:
<?xml version="1.0" encoding="utf-8"?>
-^
Hely: http://...
1. sor, 2. oszlop:
<?xml version="1.0" encoding="utf-8"?>
-^
Mindegy, hogy mit íratok ki, a hiba mindig a második karakter lesz. Ha telenyomom szóközökkel az elejét, akkor is, ha törlöm a legelső sort, akkor is. Ha include() van a require_once() helyett, akkor is ez a jelenség. Ha van egy beillesztés az utolsó sor előtt, akkor halál. Ha kikommentezem őket, akkor működik.
A jelenlegi megoldás:
ob_start();
require_once('inc/_config.php');
// Többi kód
ob_end_clean();
require_once('response/xml.php');
Tudja vki a megoldást erre a számomra különös problémára?
Chris :)
UTF8
Ön nyert