2012-11-05 94 views
1

有没有人有关于如何使用PHP读取Word(2007-2013)文件的任何建议?我正在使用样式构建来标记word文档,并且希望用PHP理想地阅读它以便分析内容。我试着搜索谷歌和这个网站,但没有运气。如果任何人有任何这方面的经验或想法,我会开始,这将不胜感激。使用PHP读取Word XML文件

+0

so it is a word你把xml放在里面的文件? – Bot

+0

@Bot - Word 2007-1013使用XML作为本机文件格式.... word文件__is__ xml文件 –

+0

@Bot。我对此表示怀疑。最近的MSWord文件('.docx')以压缩的XML格式存储数据。 – TRiG

回答

0

您可以使用PHPWord!我相信有一个阅读文档的功能。

0

我知道这不是你正在寻找的东西,但你能让他们重新保存.odt中的Word文档吗?

如果你到了那个阶段这篇文章可以帮助: reading odt files in php

0

在这里你去:)

$zip = new ZipArchive; 
$zip->open("MyFile.docx"); 
if (($index = $zip->locateName("word/document.xml")) !== false) { 
    $text = $zip->getFromIndex($index); 
    $xml = DOMDocument::loadXML($text, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING); 
    echo $xml->saveXML(); 
} 
$zip->close(); 

,如果你需要安装拉链分机,你可以在这里找到:http://php.net/manual/en/zip.installation.php

希望它可以帮助你!

0

如果您只是对Word文档的内容感兴趣并将其转换为HTML页面。我不会推荐PHPWord,因为它的内部结构非常复杂。以下代码仅使用PHP本地功能来读取docx文档的所有段落。

/*DOCX is actually a ZIP file containing other files, document.xml 
holds the text of you document, sadly not the styles, you need to drill 
further into other files to extract the styles*/ 

    $result = file_get_contents('zip://word.docx#word/document.xml'); 

    //Load the document XML into PHP's SimpleXML 
    $xml = simplexml_load_string($result,null, 0, 'w', true); 
    $body = $xml->body; 
    foreach($body[0] as $key => $value){ 
     echo "<p>"; 
     if($key == "p"){ 
      foreach ($value->r as $kkey => $vvalue) { 
       echo (string)$vvalue->t; 
      } 
     } 
     echo "</p>"; 
    } 
0

我没有直接回答,但我喜欢的就是要打破这样一个复杂的问题为简单的块。

我将使用的方法是在Word(或OpenOffice或LibreOffice)中打开它并保存为HTML。然后,我会预先安排一条指令,并使用PHP中提供的许多XML类/扩展之一读取它。

[我发现这个问题是因为我在Google上搜索的一个框架,它可以让我浏览Word生成并清理的HTML - 将它变成合法的XHTML1.0,删除Word创建的无用样式信息,同时保留我的用户生成的样式等等。第二个需要一些实验来确定我想要保留的以及我想要丢弃的内容,但是我认为这完全在我的爱好者能力范围内。]