php - 在 PHP 中读取/写入 MS Word 文件

标签 php ms-word read-write

是否可以在不使用 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/

相关文章:

c# - 来自 Amazon S3 的 Word 文件的内容类型

php - 共享文件同步(读/写)

java - 如何从 csv 返回特定数据?

php - 处理 PHP 到 mysql 查询的最佳实践?

vba - 通过编程将MS Word纸张大小设置为PostScript自定义页面大小

php - 拉维尔护照 404

vba - 获取VBA中的子目录列表

macos - 在沙盒环境中对FinderSync扩展的读写访问权限

php - 在 Laravel-4 中批量插入具有关系的对象

php - 未定义 xmlDocumentElement