ADDITION: 我發現計數行最接近的方法是通過使用Linux命令「antiword」的DOC文件,antiword將返回文本版本的DOC;而對於DOCX則使用將從DOCX中檢索內容並通過與反義詞相同的文本功能推送數據的調用。計數DOC和DOCX中的字符與LINUX
現在的問題是,當你在文件中有表格時,antiword會添加很多空格。
===
我有一個腳本,docx文件內工作了字符數:
$zip = new ZipArchive;
$striped_content = '';
$content = '';
if(!$filename || !file_exists($filename)) return false;
$zip = zip_open($filename);
if (!$zip || is_numeric($zip)) return false;
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry) == FALSE) continue;
if (zip_entry_name($zip_entry) != "word/document.xml") continue;
$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}// end while
zip_close($zip_entry);
$content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
$content = str_replace('</w:r></w:p>', "\r\n", $content);
$striped_content = trim(strip_tags($content));
如果我有doc文件我基本上轉換文件中使用LibreOffice的命令行DOCX,比我跑上面的腳本。
問題是,我無法找出在「HEADER」和「FOOTER」區域內有多少個單詞文件。這如何實現?
我的服務器上運行: PHP 5.3 的LibreOffice 的CentOS 6.5
我不知道我上需要提供什麼其他信息, 謝謝你的手在你的答案。
p.s.
我曾嘗試轉換DOC和DOCX到TXT,但結果是「頭」和「頁腳」區域沒有被保存下來的txt文檔
而且內,我已經找到了最接近的解決方案是: https://github.com/nagilum/DOCx
圖書館拆分整個docx文件,你有純文本標題,內容和頁腳,我可以嘗試從他們的鍛鍊字數。但是,libreoffice有時會將文件嚴重轉換爲docx,並且在轉換之後,具有1頁的doc文件可能在docx中有2個頁面。
哎,感謝您的回覆。在我的情況下,其他人可能會有所不同,「Characters」或「CharactersWithSpaces」標記僅包含文件的「內容」區域,並且包含「標題」和「頁腳」。用「標題」我應該有700個字符,但沒有它,這是我在「CharactersWithSpaces」中看到的是500。 – user3402600 2015-02-10 21:41:31