加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用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中的所有条目都消失了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读