phpdocx + ob_clean + download = error

时间:2015-02-23 21:29:46

标签: php phpdocx

我使用phpdocx库在Word中生成报告。默认情况下,download函数包含以下行:

$this->save($tmp_filename);
... many headers
ob_clean();
flush();
readfile($tmp_filename);            
exit;

使用ob_clean函数没有任何反应 - 没有任何内容被加载。如果我注释掉这一行,那么文件开始加载。但它会加载一个错误,当我尝试打开文件时会出现错误。错误消息说文件已损坏等。但是,如果我打开临时文件本身 - 它没关系。所以,我想知道的是ob_clean函数和整个下载函数可能出现的问题。

修改

我将ob_clean替换为ob_end_clean,问题已经消失。

1 个答案:

答案 0 :(得分:1)

你不需要使用ob clean或flush;有一个内置函数可以为phpdocx执行此操作:

例如:

require_once '../../classes/CreateDocx.inc';
$docx = new CreateDocx();
$text = 'Lorem ipsum dolor sit amet.';
$docx->addText($text, $paramsText);
$docx->createDocxAndDownload('example_text');

@ref:http://www.phpdocx.com/api-documentation/layout-and-general/create-and-download-docx-with-PHP