用PHP解析/编辑docx文件
我被要求编写一个php脚本,该脚本应该读取/解析一个docx文件,并执行一些操作,例如复制一个特定的段落/表格,并用值填充一些变量(#myvar或$myvar)。 你们推荐什么,直接使用word/document.xml文件,或者将整个文档转换成HTML文件,然后使用DOM解析它(我不喜欢这个解决方案:()? 要解析的docx的结构尚未定义,这是我的工作!它必须尽可能通用 为了清楚地了解我在做什么,docx文件是一个CV模型,我必须用数据库中的数据填充它。 附言:我不知道如何使用Xquery高效地解析/修改XML文件,因为我唯一的解决方案是在docx中使用变量(带$or#…)的纯文本用PHP解析/编辑docx文件,php,xml,xpath,xquery,Php,Xml,Xpath,Xquery,我被要求编写一个php脚本,该脚本应该读取/解析一个docx文件,并执行一些操作,例如复制一个特定的段落/表格,并用值填充一些变量(#myvar或$myvar)。 你们推荐什么,直接使用word/document.xml文件,或者将整个文档转换成HTML文件,然后使用DOM解析它(我不喜欢这个解决方案:()? 要解析的docx的结构尚未定义,这是我的工作!它必须尽可能通用 为了清楚地了解我在做什么,docx文件是一个CV模型,我必须用数据库中的数据填充它。 附言:我不知道如何使用Xquery高效
感谢您的帮助:)有两个主要的PHP库可以创建Word文档。以下是对这两种功能的描述,它们可能会帮助您解决问题:
有两个主要的PHP库可以创建Word文档。以下是对这两种功能的描述,它们可能会帮助您解决问题:
这是一个古老的问题,但我想我给出了一些建议,因为我已经为此奋斗了一段时间,最终在上个月写了我自己的包 以下是我知道的一些解决方案: 免费解决方案:
- (如上所述,笨重且能力不强)
- (工作正常,但非常麻烦,如果您计划允许用户提供模板,还将引入许多安全问题)
- (对我来说,这似乎是一个更完整的解决方案,服务器许可证价格为199欧元,也不太贵)
$command = "soffice --headless --convert-to html ".$inputfile.' --outdir '.$outputfile.'/');
$process = new \Symfony\Component\Process\Process($command);
$process->start();
while ($process->isRunning()) {}
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new \Symfony\Component\Process\Exception\ProcessFailedException($process);
}
如果你想在上下文中看到这一点,请查看我的
祝你好运 这是一个古老的问题,但我想我给出了一些建议,因为我已经为此奋斗了一段时间,最终还是在写了自己的软件包 以下是我知道的一些解决方案: 免费解决方案:
- (如上所述,笨重且能力不强)
- (工作正常,但非常麻烦,如果您计划允许用户提供模板,还将引入许多安全问题)
- (对我来说,这似乎是一个更完整的解决方案,服务器许可证价格为199欧元,也不太贵)
$command = "soffice --headless --convert-to html ".$inputfile.' --outdir '.$outputfile.'/');
$process = new \Symfony\Component\Process\Process($command);
$process->start();
while ($process->isRunning()) {}
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new \Symfony\Component\Process\Exception\ProcessFailedException($process);
}
如果你想在上下文中看到这一点,请查看我的
祝你好运 你看过PHPWord了吗?直接替换xml中的变量,然后提供修改过的docx供下载?但是我可以用xquery提取节点并用它做一些处理吗?复制、删除等。?我曾经尝试过使用与PHP捆绑在一起的简单DOM API,但我得到了一个损坏的docx文件,MS Word无法读取:(@Mark Baker:使用PHPWord,您从头创建了一个docx,我想处理现有的docx文件Maerlyn:是的,但不仅如此,我还想处理Word/document.xml节点(复制、粘贴、删除)感谢大家的回复除了xpath,PHP中不支持xquery。DOMDocument有替换节点、克隆节点和删除子节点。因此,dom操作所需的一切。但是,如果您修改了文件,我们将无法为您提供任何帮助。不要修改:)-如果您添加更多代码并提供一些数据-使用更多上下文可能会有更多帮助。1)我已经用php尝试了DOMDocument,问题是如果我修改word/document.xml的初始节点结构,结果文件会损坏并损坏