日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何解決php讀取word中文亂碼問題

本文操作環(huán)境:Windows7系統(tǒng),php7.4版,Dell G3電腦。

如何解決php讀取word 中文亂碼問題?

php讀取word文件過程中亂碼,怎么解決?

一、首先要確認(rèn)php版本,最好是高于5.6

二、啟用PHP Com 擴(kuò)展

// 將以下兩行代碼放入php.ini中, 并且重啟服務(wù)器
// 開啟擴(kuò)展
extension=php_com_dotnet.dll
// COM擴(kuò)展里自帶的,只需將前面的;去掉就可以了
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);

        // 讀取內(nèi)容
        $test= $word->ActiveDocument->content->Text;

        // 統(tǒng)計(jì)字?jǐn)?shù)
        // $num = strlen($test);

        // 解決讀取過程中亂碼問題
        $content= iconv('GB2312', 'UTF-8', $test);

        // 查看版本
        // $word_wersion = $word->Version;

        // 是否要打開文件,0代表否,1代表是
        $word->Visible = 0;

        // 關(guān)閉word句柄
        $word->Quit();

        // 釋放對象
        $word = null;

        return [
            // 'num' => $num / 2,
            // 'word_wersion' => $wordWersion,
            'content' => $content
        ];
    }

注意:

問題一:

文件url有一個(gè)地方需要注意,就是你們傳進(jìn)來的url千萬不能是絕對地址,不能是D:\WWW\這種,,一定要自己框架的路由地址,比如localhost/…,不然會(huì)出現(xiàn)錯(cuò)誤,因?yàn)橛媒^對地址讀取word內(nèi)容,只能讀取一次,然后word就會(huì)被鎖定,然后就無法讀取了。

問題二:

使用這種方式雖然解決了讀取Word內(nèi)容亂碼的問題,但是只限于讀取純文本的Word,而且是沒有樣式的那種。如果需要獲取Word文檔的內(nèi)容包括樣式、圖片、字體等,這種方式就不適合。

我們處理的方式是,采用Aspos。用Java做了一個(gè)底層服務(wù),把上傳的Word文檔都轉(zhuǎn)成html格式的,如果文檔中有圖片的話,轉(zhuǎn)換后圖片會(huì)被提取到同級目錄,并在生成的html文件中留下 標(biāo)簽。 這樣Word文檔中的字體和樣式就變成了了HTML代碼,最大程度保留了原文檔的樣式。


新聞名稱:如何解決php讀取word中文亂碼問題
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/coedjos.html