在php中读取odt文件

在php中读取odt文件,php,opendocument,Php,Opendocument,您将如何在PHP中读取odt文件?我知道你可以使用QueryPath,但这似乎有点过分,。。我只想读文件。odt,文件是压缩的xml 如果您只需要读取原始文件。只需解压缩它,像普通文件一样读取它 如果需要解析出可用的文本,则输入对QueryPath或其他xslt解析器的需求。可能就是您所需要的。不过,我自己还没有使用过它。能够在PHP中读取和修改OpenDocument文件 由于OpenDocument文件是存储在zip归档文件中的XML文件,因此您也可以使用该类在PHP下简单地读取zip归档文

您将如何在PHP中读取odt文件?我知道你可以使用QueryPath,但这似乎有点过分,。。我只想读文件。

odt,文件是压缩的xml

如果您只需要读取原始文件。只需解压缩它,像普通文件一样读取它

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

可能就是您所需要的。不过,我自己还没有使用过它。

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


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

我不知道如何编写代码。。使用zip_open,然后zip_read,。。那么文件内容呢?这里有一篇很棒的小文章,用10行代码完成了整个过程。啊,。。。我所需要做的就是更改一些文件权限,这没什么错,对不起
/*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);