使用 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 文件导入数学方程和图像的主要内容,如果未能解决你的问题,请参考以下文章