我正在寫一個快速preg_replace從CSS中去除註釋。 CSS評論通常有這種語法:preg_replace出CSS評論?
/* Development Classes*/
/* Un-comment me for easy testing
(will make it simpler to see errors) */
所以我試圖殺死一切間/ *和* /,就像這樣:
$pattern = "#/\*[^(\*/)]*\*/#";
$replace = "";
$v = preg_replace($pattern, $replace, $v);
沒有骰子!它似乎在歪斜正斜槓,因爲如果我將/ s從模式中刪除,我可以將它刪除評論文本。我嘗試了一些簡單的模式,看看我是否可以只輸斜線,但他們回到原來的字符串不變:
$pattern = "#/#";
$pattern = "/\//";
爲什麼我似乎無法匹配那些斜線任何想法?謝謝!
我不會提供它作爲答案,因爲它不直接適用於這個問題,但有一些很好的工具可以刪除/縮小CSS內容:http://www.minifycss.com/ 只適用於那些可能在這裏試圖重新發明輪子的人:) – AvatarKava 2009-10-17 15:29:27
你應該更好地使用解析器。否則,您將刪除「content:」/ * ... * /「'之類的內容。 – Gumbo 2009-10-17 15:33:56
AvatarKara - 我實際上使用這個腳本: http://code.google.com/p/cssmin/ - 但它並沒有因爲某些原因刪除註釋。我認爲我必須自己寫這一點,但由於其他腳本和答案不起作用,它似乎是一個陌生人正在發生......這是用於EE插件,所以我想知道是否字符串被傳入或環境有我不知道的一些怪癖。感謝您的鏈接! – 2009-10-17 18:16:27