Мое решение - Antiword для .doc и docx2txt для .docx
Предполагая, что вы управляете сервером linux, скачайте каждый, распакуйте и установите. Я установил каждую систему:
Антислово: make global_install
docx2txt: make install
Затем используйте эти инструменты для извлечения текста в строку в php:
//for .doc
$text = shell_exec('/usr/local/bin/antiword -w 0 ' .
escapeshellarg($docFilePath));
//for .docx
$text = shell_exec('/usr/local/bin/docx2txt.pl ' .
escapeshellarg($docxFilePath) . ' -');
docx2txt требует perl
Решение no_freedom действительно извлекает текст из файлов docx, но оно может разделить пробелы. В большинстве файлов, которые я тестировал, были случаи, когда между словами, которые нужно разделять, между ними не было места. Не хорошо, когда вы хотите полнотекстовый поиск документов, которые вы обрабатываете.