是否可以在不使用 COM 对象的情况下在 PHP 中读取和写入 Word(2003 和 2007)文件? 我知道我可以:
$file = fopen('c:\file.doc', 'w+');
fwrite($file, $text);
fclose();
但 Word 会将其读取为 HTML 文件而不是 native .doc 文件。
最佳答案
读取二进制 Word 文档需要根据已发布的 DOC 格式文件格式规范创建解析器。我认为这不是真正可行的解决方案。
您可以使用 Microsoft Office XML formats用于读写 Word 文件 - 这与 2003 和 2007 版本的 Word 兼容。为了阅读,您必须确保 Word 文档以正确的格式保存(在 Word 2007 中称为 Word 2003 XML 文档)。对于写作,您只需遵循公开可用的 XML 模式。我从未使用这种格式从 PHP 编写 Office 文档,但我使用它来读取 Excel 工作表(自然保存为 XML-Spreadsheet 2003)并在网页上显示其数据。由于这些文件是纯 XML 数据,因此在其中导航并弄清楚如何提取所需数据是没有问题的。
另一个选项 - 仅适用于 Word 2007 的选项(如果 OpenXML 文件格式未安装在您的 Word 2003 中)- 将求助于 OpenXML .作为databyss指出here DOCX 文件格式只是一个包含 XML 文件的 ZIP 存档。 MSDN上有很多资源关于 OpenXML 文件格式,所以你应该能够弄清楚如何读取你想要的数据。我认为写作会复杂得多 - 这仅取决于您将投入多少时间。
也许你可以看看PHPExcel这是一个能够使用 OpenXML 标准写入 Excel 2007 文件和从 Excel 2007 文件读取的库。在尝试读写 OpenXML Word 文档时,您可以了解所涉及的工作。
关于php - 在 PHP 中读取/写入 MS Word 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188452/