使用PHP过滤重复CSS规则的最快方法是什么?

使用PHP过滤重复CSS规则的最快方法是什么?,php,css,string,preg-replace,string-matching,Php,Css,String,Preg Replace,String Matching,例如,我的test.css具有以下规则 .fs24 { font-size: 24px; } .fc77777 { color: #777777; } .fs24 { font-size: 20px; } .fc77777 { color: #787878; } 我想要的是,一个php方法能够接受这个输入和输出 .fs24 { font-size: 24px; } .fc77777 { color: #777777; } 如您所见,我希望通过选择器检测并过滤出重复的css规则。3场所必须容纳

例如,我的test.css具有以下规则

.fs24 { font-size: 24px; }
.fc77777 { color: #777777; }
.fs24 { font-size: 20px; }
.fc77777 { color: #787878; }
我想要的是,一个php方法能够接受这个输入和输出

.fs24 { font-size: 24px; }
.fc77777 { color: #777777; }
如您所见,我希望通过选择器检测并过滤出重复的css规则。3场所必须容纳:

过滤的css规则可以是一行/多行,我关心的是,只要它们的选择器以前存在过,它们就必须被过滤掉! 有很多字符串操作技术,我想找出的是最快的方法来实现这一点,因为我在生产中的CSS应该是相当大的,我们正在尝试将所有CSS文件合并成一个,并过滤掉所有重复的规则 后进先出,也称不被过滤的是第一个CSS规则,任何其他具有重复选择器的CSS规则将被完全删除:|
我的方法是解析输入文件并构建一个以选择器作为字典键的规则字典。对于每个规则,检查选择器是否已在字典中。如果是,则放弃该规则,否则将新规则添加到字典中

解析完输入后,根据字典的内容创建新的.css文件

您需要小心使用具有多个选择器的规则。我可能会为每个选择器创建一个字典条目,但如果不进行一些额外的处理,您将在输出文件中重复代码。

使用以下方法:

.fs24{字体大小:24px!重要;} .fc77777{颜色:777777!重要;} 这是否有效:

1。不同的选择器可以指向同一个元素2。你有没有尝试过任何东西,或者你只是想让我们来做你的工作?你最好使用一个现有的浏览器开发工具,这一切都准备好了。CSS中的层叠不是小菜一碟,这就是它名副其实的原因。@Zerkms,我试图实现的是将10个CSS文件压缩为1个CSS文件,我希望减少服务器上的重复选择器…非常感谢您的输入:。出现了一个问题,什么是将输入解析到词典中的最快方法?除了使用Preg_match,你会推荐其他方法吗?除了使用preg_匹配外,还有其他方法可以做到这一点吗在Preg匹配中,我可以使用以下$pattern='/?P.*{[^{}]*}/';要输出正确的数组preg_match_all$pattern,$input,$matches;以后可以用它来创建字典。。。然而,主要问题仍然很清楚,这真的是最快的方法吗?我真的很关心这个问题,因为在我的项目中,需要解析成单个CSS文件的CSS数量是巨大的,我的任务是找到最有效的方法:最快处理这个:。。。请插入任何你认为可能比我更快的东西:DNo。。。它根本不会修剪css。。。我希望css尽可能小,因此消除服务器上的重复项非常重要: