如何从php

时间:2017-06-17 07:55:21

标签: php yii2 doc phpword phpoffice

如何从php

中的Doc文件中获取内容

我在Yii2中使用PHPOffice/PHPWord

此代码不起作用:(我的Doc文件是UTF8)

$phpWord = \PhpOffice\PhpWord\IOFactory::load($filename, 'MsDoc');
$sections = $phpWord->getSections();
foreach ($sections as $key => $value) {
    $sectionElement = $value->getElements();
    foreach ($sectionElement as $elementKey => $elementValue) {
        if ($elementValue instanceof \PhpOffice\PhpWord\Element\TextRun) {
            $secondSectionElement = $elementValue->getElements();
            foreach ($secondSectionElement as $secondSectionElementKey => $secondSectionElementValue) {
                if ($secondSectionElementValue instanceof \PhpOffice\PhpWord\Element\Text) {
                    echo $secondSectionElementValue->getText() . '<br/>';
                }
            }
        }
    }
}

我需要从Doc文件(标题,...)获取内容

1 个答案:

答案 0 :(得分:0)

.doc文件的所有文本都位于嵌套在PHPWord在加载.doc文件时创建的对象的相应[text]属性内的[elements]属性内。在代码中运行$phpWord = \PhpOffice\PhpWord\IOFactory::load($filename, 'MsDoc');后在获得的对象中搜索它们。

默认情况下,这些属性是受保护的。您必须首先在PHPWord库文件中将其状态更改为public-对于[elements],它是AbstractContainer.php,对于[text],它是Text.php。将这两个属性的状态更改为public后,便可以从$phpWord对象中提取/访问它们。