php读取word文档 死机,修复phpWord读取docx文档错误 (Trying to get property of non-object)...

本文探讨了PHPWord在处理docx文档时遇到的'尝试获取非对象属性'错误,根源在于XMLReader解析xml文件路径错误。通过实例分析和修复方法,教你如何调整异常docx文档中xml路径,包括主文档document.xml和关联媒体文件document.xml.rels。
摘要由CSDN通过智能技术生成

有时候,用phpWord读取docx文档时,会出现 Trying to get property of non-object  错误;

经过断点测试、源码排查,发现其根本原因是 XMLReader 读取元素(element)错误;更深一点的原因是,xml文件路径读取错误(有些docx文件里的xml文件路径采用的是根目录路径)

一、具体的差异,可以通过自己比较正常的docx文档和异常的docx文档内容来得到,方法如下:

1)文档001.docx 文件重命名为 文档001.zip,右键-》解压到 “文档001”,得到的类似以下文件

3fe6555cf09bb5d442dae1fe451f4593.png  或   

24997f147966d53de198bf390c09a2a6.png

注:其中第一种是我这边出异常的一个docx文档

2)xml的读取顺序大致是:

2b642c5d12c86827af02de2929f17631.png

注:其中document.xml是主文档,styles.xml是样式配置,document.xml.rels是关联的的媒体文件(图片之类的),document.xml 里的 r:embed 对应 document.xml.rels 里的 Relationship 的 Id

二、下面就看怎么修复xml读取路径错误问题了,方法很简单,具体如下图:

219bd002905ffd4cd596de2ac9eaaf00.png

三、图片读取错误问题,具体如下图:

8a1b7b69c0afb6cfc4e93f017ff5cd69.png

未完待续~

原文:https://www.cnblogs.com/tujia/p/13347402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值