怎么用PHP读取WORD的内容

发布时间:2021-08-27 17:09:47 作者:chen
来源:亿速云 阅读:261

这篇文章主要介绍“怎么用PHP读取WORD的内容”,在日常操作中,相信很多人在怎么用PHP读取WORD的内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用PHP读取WORD的内容”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

项目:问卷

需求:WORD 导入问卷

背景:运营那里有几百个 WORD 格式问卷,如果去后台手动录入,无疑工作量很大,希望能直接导入。

心情:接到需求之后五味杂陈,因为以前做过 excel 导入,而且有现成的插件,代码也是一搜索一堆。

word 导入无疑涉及到了知识盲点,但是需求就在那里,又怼不过产品同学!只能硬着头皮上了。

难点:word 不好读取内容,内容读出来不好结构化。

解决问题思路:

先读取 WORD, 再说怎么结构化。

读取 WORD:

一开始想着用 PHPWORD, 毕竟 PHPOFFICE 这么成熟的插件应该可以直接读取到 WORD 内容吧。

然而现实很骨感,找遍了文档并没有找到直接读取到 WORD 内容的方法。PHPWORD 只提供了把 WORD 转换成 HTML,TDF 的方法。

转换思路:

既然不能读取 WORD, 那我可以读取 HTML, 只需要把 WORD 转换成 HTML 就可以了,然后读取 HTML 内容就行。

代码:

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use PhpOffice\PhpSpreadsheet\Reader\Html;
use PhpOffice\PhpWord\Reader\Word2007;
class Test extends Command {
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'word';
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'word';
    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct() {
        parent::__construct();
    }
    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle(Word2007 $word) {
        //WORD转换HTML
        $result=$word->load(storage_path('测试.docx'));
        $write=new \PhpOffice\PhpWord\Writer\HTML($result);
        $write->save(storage_path().'/测试.html');
        //读取HTML内容
        $document=new \DOMDocument();
        $document->loadHTML(file_get_contents(storage_path('测试.html')));
        $html=simplexml_import_dom($document);
        dd((array)$html->body);
    }
}

开始测试:新建 测试.docx

测试.docx 内容:

怎么用PHP读取WORD的内容

执行脚本:

php artisan word

结果:

怎么用PHP读取WORD的内容

到此,关于“怎么用PHP读取WORD的内容”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 用Python提取 Word 表格内容
  2. PHP如何读取word文档

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:Go语言字符串怎么格式化

下一篇:如何利用CSS3将两个图片叠加在一起显示

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》