我在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()
函数替换模板,但是通过这样的正则表达式替换它是一个很好的变体吗?
{
(
SOME_TEMPLATE
)
}
答案 0 :(得分:2)
这个与函数preg_replace
一起使用的正则表达式可以解决这个问题:
\{[^(]*\(.*SOME_TEMPLATE.*\)[^\}]*\}
但我不确定这是解决问题的一种非常“干净”的方式。
答案 1 :(得分:0)
如果有人遇到这个问题,我找到了编写正则表达式的解决方案,忽略了标签和空格:
{(</?[^(a-zA-Z)]\b[^>]>|\s)*(\1*SOME_TAG\1*)\1*}