我在PHP中创建一个CSS生成器,它使用CSSX(是的,他们是我的想法)文件(使用特殊语法).一个特点是"简短评论":
body
{
font-family: Georgia; //I really like this font!
}
Run Code Online (Sandbox Code Playgroud)
现在我想用/*...*/comment替换这个注释,所以输出是这样的:
body
{
font-family: Georgia; /*I really like this font!*/
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢,
PS完整的CSSX文件被读入一个字符串变量.
PPS这个问题得到解答.要修复url('// server/etc.cssx')问题,请使用以下命令:
$file = preg_replace('~[^"\'\(]//([^\r\n]*)[^"\'\)]~', '/*$1*/', $file);
Run Code Online (Sandbox Code Playgroud)
正则表达式可以做到这一点:
$str = preg_replace('_//(.*)$_m', '/*$1*/', $str);
Run Code Online (Sandbox Code Playgroud)
这不会考虑引用的字符串 - 如果你使用疯狂的东西
background-image: url('//my-server/my.jpg');
Run Code Online (Sandbox Code Playgroud)
然后它会认为这是一个评论.如果这是一个问题,那么你最好写一个合适的解析器.