在php中读取odt文件

时间:2010-11-01 14:39:12

标签: php opendocument

你将如何阅读PHP中的odt文件?我知道你可以使用QueryPath,但这看起来有点过分,我只是想读取文件。

4 个答案:

答案 0 :(得分:6)

odt,文件是zip压缩xml。

如果你需要做的就是读取原始文件。只需将其解压缩并像普通文件一样阅读。

如果需要解析可用的文本,则需要输入QueryPath或其他一些xslt解析器。

答案 1 :(得分:2)

OpenTBS能够在PHP中读取和修改OpenDocument文件。

由于OpenDocument文件是存储在zip存档中的XML文件,因此您还可以使用TbsZip类在PHP下读取zip存档,而不需要任何其他库依赖。

答案 2 :(得分:0)

http://pear.php.net/package/OpenDocument可能就是您所需要的。但是,我自己没有使用它。

答案 3 :(得分:0)

/*Name of the document file*/
$document = 'Template.odt';

/**Function to extract text*/
function extracttext($filename) {

    $dataFile = "content.xml";     

    //Create a new ZIP archive object
    $zip = new ZipArchive;

    // Open the archive file
    if (true === $zip->open($filename)) {
        // If successful, search for the data file in the archive
        if (($index = $zip->locateName($dataFile)) !== false) {
            // Index found! Now read it to a string
            $text = $zip->getFromIndex($index);
            // Load XML from a string
            // Ignore errors and warnings
            $xml = new DOMDocument;
            $xml->loadXML($text, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
            // Return XML
            return $xml->saveXML();
        }
        //Close the archive file
        $zip->close();
    }   
    // In case of failure return a message
    return "File no`enter code here`t found";
}

echo extracttext($document);