当我使用php将.doc扩展名文件转换为文本格式时显示不同的字符


Showing different characters when I convert .doc extenstion file to text format using php

我的word文件与。doc扩展只有这个内容Test1001。当我转换这个word文件时它会显示以下字符

Y, dXiJ(x(I_TS1EZBmU/xYy5g/GMGeD3Vqq8K)fw9 xrxwrTZaGy8IjbRcXI u3KGnD1NIBs 
RuKV.ELM2fiVvlu8zH (W )6-rCSj id DAIqbJx6kASht(QpmcaSlXP1Mh9MVdDAaVBfJP8AVf 6Q 
Test1001

你知道为什么它会显示这些字符吗?

我使用以下类:

    private function read_doc() {
        $fileHandle = fopen($this->filename, "r");
        $line = @fread($fileHandle, filesize($this->filename));   
        $lines = explode(chr(0x0D),$line);
        $outtext = "";
        foreach($lines as $thisline)
          {
            $pos = strpos($thisline, chr(0x00));
            if (($pos !== FALSE)||(strlen($thisline)==0))
              {
              } else {
                $outtext .= $thisline." ";
              }
          }
         $outtext = preg_replace("/[^a-zA-Z0-9's','.'-'n'r't@'/'_'(')]/","",$outtext);
        return $outtext;
    }

Word .doc格式二进制不是文本,你不能简单地假设它们是文本,就像你在PHP中所做的那样。

要从Word文件中取出数据,您需要实际使用Word或能够理解并将Word二进制格式转换为文本的库。

大多数人尝试使用.docx格式,新版本的Word创建,因为它使用XML在zip存档。有许多库可以处理这种格式。如phoffice .

对于二进制.doc格式,有Docvert将从.doc转换为HTML。