您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/3/25 2:48:26发布17次查看
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 中文乱码问题的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product