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

时间:2014-06-13 06:18:30

标签: php

我的扩展名为.doc的文件只包含此内容 Test1001 。当我转换这个单词文件时,它会向我显示以下字符

Y, dXiJ(x(I_TS1EZBmU/xYy5g/GMGeD3Vqq8K)fw9 xrxwrTZaGy8IjbRcXI u3KGnD1NIBs 
RuKV.ELM2fiVvlu8zH (W )6-rCSj id DAIqbJx6kASht(QpmcaSlXP1Mh9MVdDAaVBfJP8AVf 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;
    }

1 个答案:

答案 0 :(得分:0)

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

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

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

对于二进制.doc格式,有Docvert可以动态地从.doc转换为HTML。