使用PHP脚本从站点中删除未使用的CSS
发布时间:2020-12-13 22:47:57 所属栏目:PHP教程 来源:网络整理
导读:所以我正在尝试编写一个类似于 http://unused-css.com/的PHP脚本 – 基本上找到我网站上所有未使用的CSS并删除它以创建一个“干净”的CSS文件. 我使用Firefox插件’Dust me’来抓取网站并显示所有未使用的选择器. Dustme插件以以下格式返回未使用的选择器:
所以我正在尝试编写一个类似于
http://unused-css.com/的PHP脚本
– 基本上找到我网站上所有未使用的CSS并删除它以创建一个“干净”的CSS文件. 我使用Firefox插件’Dust me’来抓取网站并显示所有未使用的选择器. Dustme插件以以下格式返回未使用的选择器: #header #nav #header #nav p #header #nav p a etc 所以我有我的PHP脚本如下: <?php //My site CSS (compressed) -- a small test sample $allcss = "body{color:#1c4866;font:13px/16px;} #header #nav {float: left;} #header #nav p {font-weight: bold;} #header #nav p a {color: blue;} input,textarea,select{font:13px/16px;color:#999;}"; //A sample of unused CSS selectors as returned by The Dustme plugin $unusedcss = "#header #nav #header #nav p #header #nav p a"; //and the code: $rules = preg_split ('/$R?^/m',$allcss); //Create array from all site css $remove = preg_split ('/$R?^/m',$unusedcss); //Create array from unused CSS selectors $final = array(); foreach ($rules as $rule) { if (!in_array(substr($rule,strpos($rule," ")),$remove) ) $final[] = $rule .= "<br />"; } echo implode("n",$final); 当我将最终回声的结果粘贴到CSS文件中时,已经删除了CSS的加载,甚至是网站上使用的CSS. 任何人都可以帮我识别问题吗?对不起,我不能在问题所在的地方提供更多帮助. 解决方法
你有没有尝试过更换:
if (!in_array(substr($rule,$remove) ) $final[] = $rule .= "<br />"; 有: if (!in_array(substr($rule," {")),$remove) ) { $final[] = $rule .= "<br />"; } 我在本地尝试了这个,在$final中,$remove中的所有条目都消失了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |