Was ich versuche zu tun:PHP: der String als streamoutput immer zusätzliche Buchstaben
- Generieren von XML (Sepa-XML) - Arbeiten!
- Speichern in db - Arbeiten! (Ich schreibe nur den ganzen Inhalt als BLOB)
- der Benutzer Lassen Sie die Datei herunterladen - nicht funktioniert, wie ich will
Mein Code:
$sql = 'SELECT ID,XML FROM table WHERE ID = ?';
//Connect here
$result = $db->prepare($sql);
$result->bind_param('i', $_GET['download_xml']);
$result->execute();
$result->bind_result($ID, $file);
$result->fetch();
header("Content-type: text/xml");
header("Content-Disposition: attachment; filename=test_".$ID.".xml");
print($file);
Es gibt mir die Datei, aber XML- Checker sagt mir, dass vor dem <xml
Zeichen stehen. Wenn ich die Datei im Editor öffne, sind keine Zeichen vor dem <xml
.
Wenn ich die Daten mit file_put_contents()
speichern, funktioniert es gut und ich bekomme eine gut formatierte XML-Datei.
Ich nehme eine wirklich wilde Vermutung hier und Chancen sind, dass ich falsch liegen kann. Es könnte sein [Null Breite Raum] (https://en.wikipedia.org/wiki/Zero-width_space) oder [Byte Mark Reihenfolge] (https://en.wikipedia.org/wiki/Byte_order_mark) verwandte Sachen. Selbst wenn ich recht habe, habe ich keine Ahnung, wie ich das beheben kann. Ich hoffe, dass jemand, der schlauer ist als ich, dir dabei helfen kann. – Andrew