用PHP中的/*comments*/替换//注释

1 php regex code-generation

我在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)

Gre*_*reg 5

正则表达式可以做到这一点:

$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)

然后它会认为这是一个评论.如果这是一个问题,那么你最好写一个合适的解析器.