在处理文档自动化任务时,经常需要使用PHP读取Word文档内容。虽然PHP本身不直接支持.docx或.doc格式的解析,但可以通过第三方库实现逐行读取功能。以下是两种主流方法:
PHPWord是处理Word文档的流行开源库,支持读取和生成.docx文件。
composer require phpoffice/phpword
<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory;
// 加载Word文档
$phpWord = IOFactory::load('document.docx');
// 获取文档内容
$sections = $phpWord->getSections();
foreach ($sections as $section) {
$elements = $section->getElements();
foreach ($elements as $element) {
if (method_exists($element, 'getElements')) {
foreach ($element->getElements() as $childElement) {
if (method_exists($childElement, 'getText')) {
// 逐行输出文本
echo $childElement->getText() . "\n";
}
}
} elseif (method_exists($element, 'getText')) {
// 直接获取文本行
echo $element->getText() . "\n";
}
}
}
?>
如果只需要文本内容,可以先将Word文档转换为纯文本格式:
<?php
// 使用系统命令转换(Linux环境)
shell_exec('antiword document.doc > document.txt');
// 逐行读取生成的文本文件
$lines = file('document.txt');
foreach ($lines as $line) {
echo $line . "
";
}
?>
通过以上方法,您可以轻松实现PHP逐行读取Word文档的功能,适用于内容提取、数据分析等多种应用场景。