dsgdhtr_43654 2016-07-01 10:42 采纳率: 100%
浏览 77
已采纳

我正在尝试用php写文件并下载它。 始终第一行显示为空白,这是错误的

I am generating a file similar to 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......

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;
}
  • 写回答

1条回答 默认 最新

  • douzhong1907 2016-07-04 11:12
    关注

    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');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?