我的word文件与。doc扩展只有这个内容Test1001。当我转换这个word文件时它会显示以下字符
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;
}
Word .doc
格式二进制不是文本,你不能简单地假设它们是文本,就像你在PHP中所做的那样。
要从Word文件中取出数据,您需要实际使用Word或能够理解并将Word二进制格式转换为文本的库。
大多数人尝试使用.docx
格式,新版本的Word创建,因为它使用XML在zip存档。有许多库可以处理这种格式。如phoffice .
对于二进制.doc
格式,有Docvert将从.doc
转换为HTML。