我試圖將一個.doc文件讀入數據庫,這樣我就可以爲它的內容建立索引。在Linux上有沒有簡單的方法來讀取.doc文件?如果不這樣做,是否有可能將.doc文件轉換爲rtf,pdf或其他易於閱讀的「開放」格式?讓PHP讀取Linux上的.doc文件
請注意,我對.docx文件不感興趣。
我試圖將一個.doc文件讀入數據庫,這樣我就可以爲它的內容建立索引。在Linux上有沒有簡單的方法來讀取.doc文件?如果不這樣做,是否有可能將.doc文件轉換爲rtf,pdf或其他易於閱讀的「開放」格式?讓PHP讀取Linux上的.doc文件
請注意,我對.docx文件不感興趣。
似乎有一個library for accessing Word documents,但不知道如何從PHP訪問它。我認爲最好的解決方案是從PHP調用它們的wv command。
前段時間,微軟發佈了specification for the .DOC format。
這不是PHP,但有一個doc2rtf實用工具,你可以使用。從那裏你可以打開RTF文件作爲文本文件,編寫一些字符串替換例程來刪除RTF格式代碼,並有一個適合索引的文本。
或者,您可以獲得OpenOffice並打開MS Word文檔,然後選擇文件>另存爲> RTF。
DOC文件以二進制格式存儲,其中沒有任何純粹的PHP編寫類處理它們。
RTF文件更容易解析,主要是文本,你可以打開它們打開並閱讀內容。
如果可以的話,我會建議使用RTF,因爲目前還沒有DOC文件的完善解決方案。
Conor,我建議看看OpenOffice命令行界面/調用宏。它可以將許多文件格式轉換爲許多文件格式。然後你可以選擇比MS doc更能解析的東西。
例如,轉換爲PDF格式,命令行是:
/usr/lib/ooo-2.0/program/soffice.bin -norestore -nofirststart -nologo -headless -invisible "macro:///Standard.Module1.SaveAsPDF(demo.doc)"
嘿,這是一個很好的提示:你有鏈接到其他宏的參考嗎? – nickf 2009-05-14 07:10:42
phpLiveDocx是一個Zend Framework組件,可在PHP運行在Linux,Windows和Mac讀寫DOC和RTF文件。此外,您可以使用它來生成PDF文件,甚至可以將PHP中的數據合併到使用MS Word或Open Office創建的模板文件中!
請參見該項目網站:
我發現了一個unoconv軟件包在Ubuntu。它在OpenOffice支持的所有格式之間進行轉換。你應該可以在php中使用exec來運行這個工具。
你可能想從這篇文章中檢查源代碼: Reading the "clean" text from DOCX and ODT
後搜索的天,這裏是我最好的解決辦法: http://wvware.sourceforge.net/
安裝包
sudo apt-get install wv
用它PHP:
$output = str_replace('.doc', '.txt', $filename);
shell_exec('/usr/bin/wvText ' . $filename . ' ' . $output);
$text = file_get_contents($output);
# Convert to UTF-8 if needed
if(!mb_detect_encoding($text, 'UTF-8', true))
{
$text = utf8_encode($text);
}
unlink($output);
這似乎很理想。我需要在一些文檔上測試它,但到目前爲止,wvText函數似乎可以滿足我的需求。 – Conor 2008-09-18 06:10:19