2013-07-29 41 views
0

我正在嘗試閱讀Word文件的內容。我用下面的代碼,但它給的警告,警告:FREAD()[function.fread]:長度參數必須大於0如何閱讀Php中Word文件的內容?

$filename=$file->getFilename(); 
$ext = pathinfo($filename, PATHINFO_EXTENSION); 
if($ext=='docx') 
{ 
$fname = fopen($filename, 'r'); 
if (is_readable($filename)) 
{ 
$content = fread($fname,filesize($filename)); 
echo $content; 
} 
else 
{ 
echo 'The file is not readable.'; 
} 
fclose($fname); 
} 
+0

問題是它不適合我 –

+0

看看答案,而不是問題。 – jsalonen

+0

錯誤消息表明您正在嘗試讀取文件,該文件不存在或者是0字節。 – AD7six

回答

0

Word文檔是不一樣的文本文件(它更像XML /二進制文件),所以你不能只使用回聲,並期望它輸出文件。

有一個庫,雖然......叫Docvert

Docvert

0

嘗試打開二進制模式的文件,使用 'B' 標誌,就像這樣:

fopen($filename, 'rb') 
+0

不,它沒有幫助 –

+0

確保你的路徑是正確的,你看到filesize()函數使用絕對路徑類似於C:\ wamp \ www \ app \ files \ test.doc,如果它的相對路徑函數可以'找到這個文件。 – user2375682

0

一個docx文件是二進制文件,而不是文本,您必須將其作爲二進制文件讀取。

你沒有說明什麼版本的字,但自從你的代碼示例使用docx,我假設你使用的是新的Word格式文件。

有一點需要注意的是,這些較新的Word文件以及Excel和PowerPoint存儲爲壓縮文件。該文件本身是一個ZIP兼容的壓縮文件。如果您複製其中一個文件併爲其添加.zip擴展名,則會看到您可以將其作爲壓縮文件打開,並且可以遍歷它的各種文件夾。

從文件中讀取的內容取決於您打算如何處理它。