PHPword提取文本不能与.docx一起使用,但适用于.doc吗?

问题描述

我使用以下代码从.doc文件获取文本。效果很好。

require_once("../../PHPword/autoload.PHP");
$source = "../files/example.doc";

$PHPWordReader = \PHPOffice\PHPWord\IOFactory::createReader('msdoc');
$PHPWord = $PHPWordReader->load($source);

if($PHPWordReader->canRead($source)) {
foreach($PHPWord->getSections() as $section) {
            foreach($section->getElements() as $element) {
                if(method_exists($element,'getText')) {
                    echo($element->getText() . "<br>");
                }
            }
        }
}   

使用.docx时,您必须将阅读器的类型从msdoc更改为word2007
$PHPWordReader = \PHPOffice\PHPWord\IOFactory::createReader('word2007'); 当我尝试制作.docx文件时,出现错误...

Uncaught Error: Object of class PHPOffice\PHPWord\Element\TextRun Could not be converted to string

当我print_r结果时,它是一个仅包含文档标题的数组。我注意到,在.docx尝试中,它在数组中具有..

[0] => PHPOffice\PHPWord\Element\Title Object

常规文档没有此文件。我认为这可能是错误的来源。
我是否必须从->getText()的循环中仅跳过[0] => PHPOffice\PHPWord\Element\Text Object
如果是这样,我将如何去做?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)