如何用PHP解析Microsoft Word 97-2004.doc文件

如何用PHP解析Microsoft Word 97-2004.doc文件,php,parsing,doc,Php,Parsing,Doc,如何使用PHP解析.doc文件“MicrosoftWord97-2004文档” 我可以用 private function read_doc() { $fileHandle = fopen($this->filename, "r"); $line = @fread($fileHandle, filesize($this->filename)); $lines = explode(chr(0x0D),$line); $outtext = "";

如何使用PHP解析.doc文件“MicrosoftWord97-2004文档”

我可以用

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." ";
          }
      }
     //print_r($outtext);die();
     $outtext = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$outtext);
    return $outtext;
}
但这不适用于MicrosoftWord 97-2004.doc文件。 我只想提取纯文本。没有别的了


-->解决方案就像他在评论中建议的那样

最后,我不得不安装linux catdoc 0.94.2来解决这个问题。PHPWord无法以正确的方式将所有文件转换为纯.txt格式

因此,这里有一个针对linux(例如Unbuntu)用户的解决方案: 在命令行上安装catdoc

sudo apt-get install catdoc
如果您在Windows服务器上,请查看此项。这对我也很有用:

然后在PHP代码中可以这样调用它(对于Linux调用):

然后你可以做个例子

$text = strip_tags($text);
$text = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $text);
echo nl2br($text) ;
在屏幕上查看结果

这是迄今为止对我最有效的方法。
如果有人有更好的解决方案,请告诉我。

看看这样一个库,它可以读取BIFF格式的.doc文件mark,使用PHPWord它工作起来很有魅力。感谢最后我不得不安装catdoc->我在这篇帖子中写了一个自己的答案,以防有人在找它:the
$text = strip_tags($text);
$text = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $text);
echo nl2br($text) ;