• 技术文章 >后端开发 >PHP问题

    如何解决php读取word 中文乱码问题

    藏色散人藏色散人2021-12-09 09:50:03原创1234

    php读取word中文乱码的解决办法:1、查看php版本;2、修改php.ini并且重启服务器;3、通过“iconv('GB2312', 'UTF-8', $test);”解决读取过程中乱码问题即可。

    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

    如何解决php读取word 中文乱码问题?

    php读取word文件过程中乱码,怎么解决?

    一、首先要确认php版本,最好是高于5.6

    二、启用PHP Com 扩展

    // 将以下两行代码放入php.ini中, 并且重启服务器
    // 开启扩展
    extension=php_com_dotnet.dll
    // COM扩展里自带的,只需将前面的;去掉就可以了
    com.allow_dcom = true

    三、代码如下:

        public function readWord($url)
        {
            $word = new COM("word.application") or die("Unable to instantiate Word");
    
            // 打开路径为URL的word,doc或docx都可以
            $word->Documents->OPen($url);
    
            // 读取内容
            $test= $word->ActiveDocument->content->Text;
    
            // 统计字数
            // $num = strlen($test);
    
            // 解决读取过程中乱码问题
            $content= iconv('GB2312', 'UTF-8', $test);
    
            // 查看版本
            // $word_wersion = $word->Version;
    
            // 是否要打开文件,0代表否,1代表是
            $word->Visible = 0;
    
            // 关闭word句柄
            $word->Quit();
    
            // 释放对象
            $word = null;
    
            return [
                // 'num' => $num / 2,
                // 'word_wersion' => $wordWersion,
                'content' => $content
            ];
        }

    注意:

    问题一:

    文件url有一个地方需要注意,就是你们传进来的url千万不能是绝对地址,不能是D:\WWW\这种,,一定要自己框架的路由地址,比如localhost/…,不然会出现错误,因为用绝对地址读取word内容,只能读取一次,然后word就会被锁定,然后就无法读取了。

    问题二:

    使用这种方式虽然解决了读取Word内容乱码的问题,但是只限于读取纯文本的Word,而且是没有样式的那种。如果需要获取Word文档的内容包括样式、图片、字体等,这种方式就不适合。

    我们处理的方式是,采用Aspos。用Java做了一个底层服务,把上传的Word文档都转成html格式的,如果文档中有图片的话,转换后图片会被提取到同级目录,并在生成的html文件中留下 <img> 标签。 这样Word文档中的字体和样式就变成了了HTML代码,最大程度保留了原文档的样式。

    推荐学习:《PHP视频教程

    以上就是如何解决php读取word 中文乱码问题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php word
    上一篇:php怎么计算几个字符 下一篇:ubuntu apache2 无法打开php怎么办
    PHP编程就业班

    相关文章推荐

    • 如何解决php json数据乱码问题• 如何解决php 微信输出乱码• PHP mysqli 中文 乱码怎么办• 如何解决php字节丢失乱码问题

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网