我正在尝试使用preg_replace缩小多个CSS文件.实际上,我只是想从文件中删除任何换行符/标签和注释.以下为我工作:
$regex = array('{\t|\r|\n}', '{(/\*(.*?)\*/)}');
echo preg_replace($regex, '', file_get_contents($file));
但我想在单个多行正则表达式中执行此操作,如下所示:
$regex = <<<EOF
{(
\t
|
\r
|
\n
|
/\*(.*?)\*/
)}x
EOF;
echo preg_replace($regex, '', file_get_contents($file));
但是,这根本不起作用.有没有办法做到这一点?
编辑:好的,所以我将看看现有的minifiers,但它仍然让我有一个问题,我将如何做这样的多行正则表达式,因为使用x修饰符多行正则表达式应该可以正常工作,即使在PHP,应该'他们?
DRY ="不要重复自己".
我有一个基础css框架,我用它来构建更复杂的设计.最快的原型设计方法就是从最后开始并构建css以获得所需的结果(而不是从基本css编辑现有的css属性).
但是,在我完成之后,会有很多重复的类名和属性.
我正在寻找一个在线(或离线)工具,它将扫描我的css文件,并以删除冗余和重复的形式智能地重新制作它.
例如,如果这两行存在于CSS文件中:
//FROM THE BASE CSS
.header{
font-weight:bold;
font-size:1.5em;
background:red;
margin:0 auto;
padding:20px
}
//FROM THE ADDED CSS
.header{
font-weight:normal;
font-size:1.25em;
background:blue;
padding-bottom:0;
margin-top:-20px
}
Run Code Online (Sandbox Code Playgroud)
所需的结果(给级联中的较低项目优先于前者)将删除.header指令的第一个实例,并将两个.header实例中的规则合并为一个.header指令,如下所示:
.header{
font-weight:normal;
font-size:1.25em;
background:blue;
margin:-20px auto 0 auto;
padding:20px 20px 0 20px
}
Run Code Online (Sandbox Code Playgroud)
这样的应用程序是否存在?