Hallo,
dein Lösungsvorschlag ist in mehreren Punkten kritikwürdig.
Zum Beispiel: Warum speicherst du das XML-Dokument überhaupt als Datei? Wenn schon, kannst du den XML-String auch direkt an den Browser senden.
Aber viel problematischer ist das hier:
// Header für Dateidownload senden header('Content-Type: application/xml'); header('Content-Disposition: attachment; filename="' . $file_name . '"'); header('Content-Length: ' . filesize($file_name)); // XML-Datei an den Client senden readfile($file_name); // Bestätigungsseite anzeigen echo '<html> <head> <title>Bestätigung</title> </head> <body> <h1>XML-Datei erfolgreich generiert und heruntergeladen!</h1> </body> </html>'; // XML-Datei vom Server löschen unlink($file_name); ?>
Per HTTP-Header kündigst du dem Client an: Hier kommt jetzt ein XML-Dokument mit einer Länge von soundsoviel Bytes. Das wird er dann auch empfangen und womöglich zum Speichern anbieten.
Dass danach noch ein Stück HTML kommt, wird er aber ignorieren. Denn erstens ist die angekündigte Nutzdatenlänge erreicht, weiterlesen wäre also Unsinn; zweitens würde, selbst wenn die Länge entsprechend korrigiert wird, das Stück HTML noch dem XML-Dokument zugeschlagen.
Einen schönen Tag noch
Martin
--
Im Englischen hat eine Katze neun Leben. Im Deutschen vielleicht auch, aber nach Abzug der Steuern bleiben nur noch sieben übrig.
Im Englischen hat eine Katze neun Leben. Im Deutschen vielleicht auch, aber nach Abzug der Steuern bleiben nur noch sieben übrig.