如何有效地替换引号(或包装符号)在动态html字符串的一部分


How to efficiently replace quotes (or wrapping symbols) in the part of the dynamic html string?

我有一个像-

这样的html字符串

...style="background-position: left top; background-image: url("http://localhost/abc/{DYNAMIC CONTENT}") etc...

如果style="之后有双引号,那么什么是快速有效的方法来替换url("")部分中的双引号呢?我不需要在任何地方替换引号,只是在那个特定的地方。谢谢你。

使用正则表达式(匹配足够的上下文以减少误报):

$src = preg_replace(
           '#(style="[^"]+:'s*url)   [(]"   ([^"]+)   "[)]#x',
           "$1('$2')",
           $src
       );

虽然只替换一个双引号" "对每个内联style=。因此,如果您希望看到多个格式错误的属性/url("..")表达式,则可能需要在源代码上运行两次。