要按行读取 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 数组也会包含文档中的每一行数据。