PHP读取word文档里的文本,表格,图片等信息

安装 PHPWord

首先,你需要安装 PHPWord 库。你可以使用 Composer 来安装:

composer require phpoffice/phpword

获取 Word 文档中的内容

你可以使用 PHPWord 库来读取 Word 文档中的内容。以下是一个示例代码,展示如何获取 Word 文档中的文本内容:

<?php
require 'vendor/autoload.php';

use PhpOffice\PhpWord\IOFactory;

$filePath = '123.docx'; //这里是文件的路径
// 加载 Word 文件
$phpWord = IOFactory::load($filePath);
$sections = $phpWord->getSections();
$content = [];
foreach ($sections as $section) {
    $elements = $section->getElements();
    foreach ($elements as $key => $element) {
    	//获取文本内容
        if (method_exists($element, 'getText')) {
            $content[] = $element->getText();
        }
        //获取文档的表格里的内容
        if ($element instanceof \PhpOffice\PhpWord\Element\Table) {
            $tableContent = "<table><tbody>";
            foreach ($element->getRows() as $row) {
                $tableContent .= "<tr>";
                foreach ($row->getCells() as $cell) {
                    // 获取单元格的文本
                    foreach ($cell->getElements() as $cellElement) {
                        if(!empty($cellElement->getText())){
                            $tableContent .= "<td>" . $cellElement->getText() . "</td>";
                        }
                    }
                }
                $tableContent .= "</tr>"; // 每行数据后换行
            }
            $tableContent .= "</tbody></table>";
            $content[] = $tableContent;
        }
        if ($element instanceof \PhpOffice\PhpWord\Element\TextRun) {
           
       		//获取文档里的图片并保存到本地
           foreach ($element->getElements() as $ele2){
               if ($ele2 instanceof \PhpOffice\PhpWord\Element\Image){
                   $imageSrc = 'images/' . md5($ele2->getSource()) . '.' . $ele2->getImageExtension();
                   $imageData = $ele2->getImageStringData(true);
                   // $imageData = 'data:' . $ele2->getImageType() . ';base64,' . $imageData;
                   file_put_contents($imageSrc, base64_decode($imageData));
                   $content[] = '<img src="/'. $imageSrc .'" style="width:100%;height:auto">';
               }
           }
            
        }
    }
}
// 打印内容
print_r($content);
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值