0

我有一个css声明背景: url(corners/bl.png) no-repeat left bottom !important; 我需要使用 preg_replace 在corners/bl.png 之前添加一些东西问题是我也有背景: url(../images/gray/topmenu/active_l.png) no-repeat left center; 我需要跳过它,因为它包含 ../ 在 url 值内。我需要的是在值不包含 ../ 时获取 url 值。如果它只包含 / 则获取并替换它,如果 ../ 跳过它。

这是正在工作的代码,除了 ../ 问题 $new_file_content = preg_replace("/(:|,)(\s*?. ?\s ?)(\s*\burl)(\s*() (['|\"]?)([^/|^'|^\"|^)]*)(['|\"]?)())/i", '$1$2$3$4$5'。 implode("/",$file_path_explode)."/".'$6$7$8', $new_file_content);

我知道我需要添加另一个条件而不是 ([^/|^'|^\"|^)]*) 但我不知道如何添加类似 except ../ [^(../ )] 或...?谢谢

4

1 回答 1

1

会做类似的事情: $new_file_content = preg_replace("/url\([\s]*(([^\.]{2})[^\)]+)/i", "url(". implode("/",$file_path_explode) ."/$1", $new_file_content); 适合你的需要?它专门检查“url(”,因此您只触摸您在正则表达式中实际想要替换的内容。也不会匹配任何以url(.

于 2012-10-16T19:17:51.040 回答