我现在正在做一个项目,而且我一直在阅读word文档。
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中阅读word文档?
答案 0 :(得分:13)
对于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
返回文本答案 1 :(得分:3)
&#34; PHPWord是一个用纯PHP编写的库,它提供了一组用于写入和读取不同文档文件格式的类。&#34; (PHPOffice,2016)
这个开放的php库应该可以解决你的问题。你可以下载它,或者通过作曲家获取它:
答案 2 :(得分:2)
“docx”与“doc”不同。 Docx文件基本上是xml files in a zipfile container (as described by wikipedia)。 Doc文件是二进制blob。
我知道没有能够轻松读取php中docx文件的库(尽管Phpdocx can write them)。但是,由于这些只是zip文件和xml文件,您应该可以使用ZipArchive
将某些内容放在一起以打开docx容器和DOMDocument
或SimpleXML
或XMLReader
或XSLTProcessor
自己阅读xml文档。
答案 3 :(得分:1)
Word文档不像文本文件那样方便地存储(它更像是xml /二进制文件),所以你不能只使用echo并期望它输出docx
文件的人类可读部分。
有一个库可以做你想要的,但它只需要doc
个文件