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 値を取得することです。/ しか含まれていない場合は取得して置き換え、../ の場合はスキップします。

../ issue $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 に答える