2015-02-23 152 views
1

我使用phpdocx庫來在Word中創建報告。默認情況下,download功能包含這些行:phpdocx + ob_clean + download =錯誤

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

隨着ob_clean功能沒有任何反應 - 沒有被加載。如果我註釋掉這一行,那麼文件開始加載。但它會加載一個錯誤,當我嘗試打開文件時出現。該錯誤消息說該文件已損壞等。但是,如果我打開臨時文件本身 - 沒問題。所以,我想知道的是ob_clean函數和整個下載函數可能會出錯。

編輯

我換成ob_cleanob_end_clean,問題已經消失。

回答

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

+0

看來,如果我的圖書館(我的意思是phpdocx)得到過時。當我第一次將它整合到我的應用程序中時,它只包含幾個文件。所以,我的源代碼中沒有'createDocxAndDownload'現在 – Jacobian 2015-02-23 21:47:45

+0

你看看http://phpword.codeplex.com/?我用它來生成需要自動生成word .docx代的應用程序。 codeplex也有使用phpexcel。它的文檔很好,有很多示例代碼片斷。我使用作曲家來安裝我的應用程序庫的源代碼,如果它過時了,它是最新的。此外,它的開源和免費。我認爲phpdocx是支付授權問題。當我嘗試創建.doc文件時遇到了挑戰,而我使用的是開放源代碼標準.docx,它們是一堆xml符號。 – unixmiah 2015-02-24 17:57:35

+0

在office 2003及以下版本中,您可以從MS網站下載comp文件包以支持.docx文件。 – unixmiah 2015-02-24 18:00:19