PHP前端开发

PHP如何按行读取Word文档?

百变鹏仔 1个月前 (12-15) #PHP
文章标签 文档

使用 php com 类按行读取 word 文档

要按行读取 word 文档的数据,可以使用 php com 类并配合 preg_split 函数。

$text = $document->range->text; // 获取 word 文档的文本内容$lines = preg_split('/||/', $text); // 按换行符分割文本为行

这样,$lines 数组中就会包含文档中的每一行数据。

使用 xml 解析

立即学习“PHP免费学习笔记(深入)”;

对于 docx 格式的文档,由于它们是 zip 压缩包,因此可以解压后直接解析 word/document.xml 文件中的 xml 内容。

// 解压 docx 文档$zip = new ZipArchive;$zip->open('file.docx');// 提取并读取 "word/document.xml" 文件$xml = $zip->getFromName('word/document.xml');$dom = new DOMDocument;$dom->loadXML($xml);// 解析 XML 文档并获取每行的文本$paragraphs = $dom->getElementsByTagName('w:p');foreach ($paragraphs as $paragraph) {    $runs = $paragraph->getElementsByTagName('w:r');    $line = '';    foreach ($runs as $run) {        $line .= $run->textContent;    }    $lines[] = $line;}

这样,$lines 数组也会包含文档中的每一行数据。