0

すべての body セレクターと html セレクターをカスタム クラスに置き換えようとしています。(後で、html コンテンツはカスタム コンテナーに表示され、利用可能な css はメイン サイトに影響を与えません。)

これが私が試したことです:

$data = "html body { color: red; }\nbody html { color: red; }\nhtml, body { color: red; }\nbody, html, .body table, #html-TemplateContainer {\nbackground-color:#eee;\n}";
echo "<pre>".preg_replace('/(^|[,}\s]+)(body html|html body|html|body)([,.{\s]*)/is', '$1'.'.foo'.'$3', $data)."</pre>";

どちらが印刷されますか:

.foo { color: red; }
.foo { color: red; }
.foo, body { color: red; }
.foo, html, .body table, #html-TemplateContainer {
background-color:#eee;
}

3 行目と 4 行目で本文と html (scnd セレクター) が置き換えられない理由がわかりません。私の理解では、正規表現と一致するはずです。

4

2 に答える 2

0
 You should try this...
 =========================>


  echo  "<pre>".preg_replace('/(^|#|.|\s]+)(body html|html body|html|body)([^,.{\s]*)/is', 
  '$1'.'.foo'.'$3', $data)."</pre>";
于 2013-10-16T13:20:23.497 に答える