【问题标题】:docx template processor inserting image [closed]docx模板处理器插入图像[关闭]
【发布时间】:2013-12-10 08:05:01
【问题描述】:

我在 PHP 上编写了自己的 docx 模板处理器。 我使用 docx 文件作为存档,并在存档的 word 目录中更改 document.xml 文件。在我插入图像之前,一切都运行良好。在word文件中,我写这样的模板:

{(SOME_TEMPLATE)} 

在 XML 文件中它看起来像:

some xml tags ... {(SOME_TEMPLATE)} ... some xml tags

但是当我在模板之后插入图像时,它看起来像:

some tags ... { some tags ...(SOME_TEMPLATE)} ". <br /> 

图像破坏了我的模板我的 XML 标记。我尝试使用str_replace() 函数替换模板,但是用这样的正则表达式替换它是一个好的变体吗?

  1. 首先我们在搜索{
  2. 然后我们忽略所有符号,直到找到(
  3. 然后我们忽略所有直到找到关键字SOME_TEMPLATE
  4. 然后重复步骤 2 直到 )
  5. 然后重复直到}

【问题讨论】:

    标签: php xml regex templates


    【解决方案1】:

    这个正则表达式与函数 preg_replace 一起使用应该可以解决问题:

    \{[^(]*\(.*SOME_TEMPLATE.*\)[^\}]*\}
    

    但我不确定这是解决问题的一种非常“干净”的方法。

    【讨论】:

    • 感谢您的回答,但我找到了更简洁的解决方案来忽略所有标签和空格。
    【解决方案2】:

    如果有人遇到这个问题,我找到了编写忽略标签和空格的正则表达式的解决方案:

    {(?[^(a-zA-Z)]\b[^>]>|\s)*(\1*SOME_TAG\1*)\1*} 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2013-01-13
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      相关资源
      最近更新 更多