一尘不染

在PHP中读/写MS Word文件

php

是否可以在不使用COM对象的情况下用PHP读写Word(2003和2007)文件?我知道我可以:

$file = fopen('c:\file.doc', 'w+');
fwrite($file, $text);
fclose();

但是Word会将其读取为HTML文件而不是本机.doc文件。


阅读 446

收藏
2020-05-26

共1个答案

一尘不染

读取二进制Word文档将涉及根据已发布的DOC格式的文件格式规范创建解析器。我认为这不是真正可行的解决方案。

您可以使用Microsoft OfficeXML格式来读写Word文件-
这与Word的2003和2007版本兼容。为了阅读,您必须确保Word文档以正确的格式保存(在Word 2007中称为Word 2003
XML文档)。对于编写,您只需要遵循公开可用的XML模式即可。我从未使用过这种格式来从PHP编写Office文档,而是将其用于读取Excel工作表(自然保存为XML-
Spreadsheet 2003)并将其数据显示在网页上。由于文件显然是XML数据,因此在其中导航并弄清楚如何提取所需的数据是没有问题的。

另一个选项-仅Word 2007选项(如果您的Word2003中未安装OpenXML文件格式)-将重新排序为OpenXML。作为databyss指出,这里的DOCX文件格式只是包含XML文件的ZIP压缩文件。MSDN上有很多有关OpenXML文件格式的资源,因此您应该能够弄清楚如何读取所需的数据。我认为写作会更加复杂-这取决于您要投入多少时间。

也许您可以看看PHPExcel,它是一个能够使用OpenXML标准写入Excel2007文件并从Excel2007文件读取的库。当您尝试读写OpenXML Word文档时,您可能会了解其中涉及的工作。

2020-05-26