我正在写一个快速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