2

如何在php中从Doc文件中获取内容

我在 Yii2 中使用PHPOffice/ PHPWord。

此代码不起作用:(我的文档文件是 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 文件中获取内容(标题,...)

4

1 回答 1

0

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

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

于 2018-06-22T17:41:22.600 回答