2016-07-01 3 views
1

Ich erzeuge eine Datei ähnlich wie XML.Ich versuche, Datei mit PHP zu schreiben und es herunterzuladen. Immer die erste Zeile erscheint leer und das ist falsch

Wenn ich alle Zeichenfolge habe, versuche ich schreibe und laden Sie es auf Fly.

Das Problem beginnt, wenn ich die Datei öffne: erste Zeile ist leer und einfacher Text beginnt in der zweiten Zeile. Ich habe mit fwrite getestet, FPUT und file_put_contents() .... aber ......

ich havn't der Lage gewesen, das Problem zu lösen ...

Dies ist das Stück Code :

function dw($str, $name){ 
     $handle = fopen($name.'.fmt', "w"); 
     fwrite($handle, utf8_encode($str)); 
     fclose($handle); 
     header('Content-Type: text/xml'); 
     header('Content-Disposition: attachment; filename='.basename($name.'.fmt')); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($name.'.fmt')); 
     readfile($name.'.fmt'); 
     exit; 
} 
+0

Mögliche Duplikat [Erste Zeile eines Auto genrated Datei ist leer] (http://stackoverflow.com/questions/28850629/first-line-of-a-genated-file-is-blank) – BadHorsie

+0

Ist nicht das Gleiche. Ich habe diesen Weg getestet, aber das ist keine Lösung –

+0

Versuchen Sie mit: $ handle = fopen ($ name. '. Fmt', "wb"); // oder utf8_encode für utf8_decode ersetzen // oder exit entfernen; am Boden. –

Antwort

0

ich die Lösung gefunden (vielleicht jemand muss diese Antwort):

$handle = fopen($name.'.fmt', "wb"); 
    rewind($handle); 
    fwrite($handle, $new_dom->saveXML()); 
    fclose($handle); 

    header('Content-Description: File Transfer'); 
    header('Content-Type: text/xml'); 
    header('Content-Disposition: attachment; filename=' . basename($name.'.fmt')); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($name.'.fmt')); 
    ob_clean(); 
    readfile($name.'.fmt'); 
Verwandte Themen