ADDITION: Я обнаружил, что самый близкий метод подсчета строк - с помощью команды linux «antiword» для файлов DOC, antiword вернет текстовую версию DOC; в то время как для DOCX используется вызов, который будет извлекать контент из DOCX и передавать данные с помощью той же текстовой функции, что и antiword.count символов в DOC и DOCX с PHP 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 я в основном преобразовать файл DOCX с помощью командной строки LibreOffice и чем я бегу сценарий выше.
Проблема в том, что я не могу выяснить, сколько слов в файле «HEADER» и «FOOTER». Как это можно сделать?
Мой сервер работает: PHP 5.3 LibreOffice CentOS 6.5
Я не уверен, о том, что другая информация, которую я должен поставить, спасибо за ваши ответы, прежде чем руки.
p.s.
Я попытался преобразовать документ и DOCX в TXT, но в итоге на «Header» и «Footer» районах не был сохранен в текстовом документе
Кроме того, ближайшее решение, которое я нашел: https://github.com/nagilum/DOCx
Библиотека распаковывает весь файл docx, и у вас есть заголовок, содержание и нижний колонтитул в виде обычного текста, и я могу попытаться подсчитать количество слов из их. Однако libreoffice, по-видимому, плохо конвертирует файлы в docx, а файл doc с 1 страницей может иметь 2 страницы в docx после преобразования.
эй, спасибо за Ваш ответ. В моей ситуации это может быть другим для других, теги «Персонажи» или «СимволыWithSpaces» содержат только область «Содержимое» файла и exlucde «header» и «footer». С «заголовком» у меня должно быть 700 символов, но без него, что я вижу в «CharactersWithSpaces», равно 500. – user3402600