使用 PHP DOMDocument::loadXML 从 docx 文件导入数学方程和图像

Posted

技术标签:

【中文标题】使用 PHP DOMDocument::loadXML 从 docx 文件导入数学方程和图像【英文标题】:Import Mathmatical equation and image from docx file using PHP DOMDocument::loadXML 【发布时间】:2020-07-07 15:54:11 【问题描述】:

我想将数据从 docx 文件导入到我的 CRM,我正在使用 php DOMDocument::loadXML 方法,但我无法找到导入数学公式和图像的方法从文档文件。 word文件的图片为

我试图导入的代码是

    <?php
    $questionSheetRecord= readDocx("demo-stack.docx");
    echo "<pre>";
    print_r($questionSheetRecord);
    echo "</pre>";

    function readDocx($filePath) 
        // Create new ZIP archive
        $zip = new ZipArchive;
        $dataFile = 'word/document.xml';
        // Open received archive file
        $returnArray=array();
        if (true === $zip->open($filePath)) 
            // If done, search for the data file in the archive
            if (($index = $zip->locateName($dataFile)) !== false) 
                // If found, read it to the string
                $data = $zip->getFromIndex($index);
                // Close archive file
                $zip->close();
                // Load XML from a string
                // Skip errors and warnings
                $xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
                // Return data without XML formatting tags

                foreach($xml->getElementsByTagName('p') as $child) 
                    $returnArray[]=  $child->nodeValue;
                

                $text = $xml->saveXML();

                return $returnArray;
            
            $zip->close();
        
        // In case of failure return empty string
        return "";
    
    ?>

` word文件的链接是 Word File to import data 代码链接是Code Link

运行此代码时我得到的输出是 我想要这些:以及他们的帖子公式和图片。 我已经完成了与此问题相关的其他问题,但它们不是此问题的正确解决方案。

谢谢

【问题讨论】:

【参考方案1】:

请浏览“update-v1.1.php”和“demo.docx”文件。在这里你可以得到一个从word文件中提取图像的代码,但是这个代码的缺点是如果你想在word文件中添加任何图像,那么你必须添加一个标签“IMG1”,这里IMG有一个post值图片的序列,比如如果这是word文件中的第一张图片,那么标签就是IMG1,如果是第六张图片,那么标签就是IMG6。当你运行代码时,你会得到一个数组,你可以随意使用它。

如果有人找到更好的解决方案,请仅在此处通知我。

我也在寻找一种将数据导出到单词中的解决方案,并在任何指定位置使用图像(意味着在文本句子之间,我想插入 1 个或多个图像)。

【讨论】:

以上是关于使用 PHP DOMDocument::loadXML 从 docx 文件导入数学方程和图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 zend 读取 php.ini 进行 PHP 扩展(不是 PHP 语言)

php PHP - 使用AJAX调用php类函数

如何使用包含的 php 文件中的 php 变量

mac使用php-version切换PHP版本

如何使用php将php代码写入文件

PHP php-log - 使用PHP处理日志文件