[英]I am trying write file with php and download it. Always first line appears in blank and that is wrong
I am generating a file similar to xml. 我正在生成一个类似于xml的文件。
When I have all string i try write and download it on fly. 当我有所有字符串我尝试写并在飞行中下载它。
The problem begins when I open the file: first line is blank and plain text begins in the second line. 当我打开文件时问题开始:第一行是空白,纯文本从第二行开始。 I have tested with fwrite, fput, and file_put_contents().... but......
我用fwrite,fput和file_put_contents()进行了测试....但......
I havn't been able to solve the problem... 我无法解决问题......
This is the piece of 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;
}
I found the solution (perhaps someone needs this answer): 我找到了解决方案(也许有人需要这个答案):
$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');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.