читать документ Word в php

Сейчас я делаю проект, и я застрял в чтении текстовых документов.

Содержание файла Word.

This is a test word file in PHP. Thank you. 

PHP-код.

  $myFile = "wordfile.docx"; $fh = fopen($myFile, 'r'); $theData = fread($fh, 1000); fclose($fh); echo $theData; 

вывод:

 PK!éQ°Â[Content_Types].xml ¢( ´”MOÂ@†ï&þ‡f¯¦]ð`Œ¡pP<*‰Ïëv «Ýì,_ÿÞiI¡(ziÒNß÷}fÚÞ`©‹h•5)ë&'6Sf'²×ñc|Ë"Âd¢°R¶dƒþåEo ¼r€© ¦l‚»ãå´ÀÄ:0TÉ×"Пp'䧘¿îtn¸´&€ q(=X¿÷¹˜!.éñ š„ä,º_¿WF¥L8W()ò²Êu <"œ›l.Þ%¤¬Ìqª^Nøp0ÙKPºl*Õ3Ó «¢'ðáIhbçë3žY9ÓÔwr¼¹F›çJB/Ýœ·é;é"©+Z(³e?ÈaUþ=ÅÚ÷Ä ø7¦Ã<I?Hû<4ÆeÓÉ:bGÛž!ÐN ùþÛÆmCÇs+ÂÞ_þbǼ$§ó4ïœ 0ñ£¶n…´#€W×îٕͱH:#oÒÎñ¿h{»JuLGÎ êõÐtÄêDZXg÷åFÌ kÈæÕîÿÿPK !ÇÂ'¼ß_rel 

Должен ли я читать документ на PHP?

Для docx используйте эту функцию

 function read_docx($filename){ $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); } zip_close($zip); $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content); $content = str_replace('</w:r></w:p>', "\r\n", $content); $striped_content = strip_tags($content); return $striped_content; } 

Он вернет текст из docx

«PHPWord – это библиотека, написанная на чистом PHP, которая предоставляет набор классов для записи и чтения из разных форматов файлов документов». (PHPOffice, 2016)

Эта открытая библиотека php должна решить вашу проблему. вы можете загрузить его или получить его композитором:

https://github.com/PHPOffice/PHPWord

«docx» отличается от «doc». Файлы Docx представляют собой в основном файлы xml в контейнере zipfile (как описано в wikipedia) . Файлы Doc представляют собой двоичные капли.

Я не знаю никакой библиотеки, которая может легко читать файлы docx в php (хотя Phpdocx может их записать ). Однако, поскольку это всего лишь zip-файлы и xml-файлы, вы можете ZipArchive что-то вместе, используя ZipArchive чтобы открыть контейнер docx и DOMDocument или SimpleXML или XMLReader или XSLTProcessor для чтения самих документов xml.

Вы пробовали это :

http://www.blogs.zeenor.com/it/read-ms-word-docx-ms-word-2007-file-document-using-php.html

Это может помочь вам …

Документ Word не хранится удобно, как текстовый файл (это больше похоже на файл xml / binary), поэтому вы не можете просто использовать эхо и ожидать, что он выведет удобочитаемую часть файла docx .

Есть библиотека, которая может делать то, что вы хотите, но требуется только файл doc

Docvert