【问题标题】:Removing empty CSS Selector with PHP preg_replace使用 PHP preg_replace 删除空的 CSS 选择器
【发布时间】:2016-07-21 02:30:22
【问题描述】:

我正在尝试通过压缩获取整个 CSS 文件。它工作正常,但我想删除空的 CSS 选择器。这个文件是程序生成的,所以它会留下一些空标签,而不是手动删除它们:

$buffer = str_replace('#content>#columns>#article{}', '', $buffer);
$buffer = str_replace('.menuDeeper88{}', '', $buffer);

我尝试这样删除它们:

$buffer = preg_replace('/\}[.*?]\{\}/', '\}', $buffer);

我想是这样的(只是一个澄清)

Replace any case of '}ANY_CHARACTERS{}' with ''

但是 preg_replace 方法不起作用。我希望这里有人可以帮助我完成它。

提前谢谢你。

【问题讨论】:

    标签: php preg-replace minify


    【解决方案1】:

    您可以使用这种方法:

    $css = "#content>#columnsA{min‐width: 500px;}#articleA{ }.menuUpper88{}#content>#columnsB>{min‐width: 700px;}#articleB{}.menuUpper88{}.header {background-color: #fff;background-image: url(image.gif);background-repeat: no-repeat;background-position: top left;}";
    
    $css_splitted_by_closed_bracket = preg_split("/\s*\}/i", $css);
    
    function get_css_without_empty_selector($data)
    {
        $result = "";
        foreach ($data as $item) {
            if($item != "" && substr($item, -1) != '{') {
               $result .= $item . "}";
            }
        } 
        return $result;
    }
    
    get_css_without_empty_selector($css_splitted_by_closed_bracket);
    

    在这里运行代码:https://3v4l.org/9Cskr

    【讨论】:

      【解决方案2】:

      使用这个:

      preg_replace('/(?:[^\r\n,{}]+)(?:,(?=[^}]*{)|\s*{[\s]*})/', '', $buffer);
      

      测试:https://regex101.com/r/pX0wR0/3

      正则表达式修改自:What is the REGEX of a CSS selector

      【讨论】:

      • preg_replace 不需要g,它会导致Warning: preg_replace(): Unknown modifier 'g'
      • 谢谢,@user3631047
      • @jim 它不适用于分组选择器。 regex101.com/r/pX0wR0/7
      【解决方案3】:

      我没有得到 Jim 关于使用分组选择器的答案。

      试试这个:

        preg_replace('/[a-zA-Z0-9\s#=",-:()\[\]]+\{\s*\}/', '', $buffer);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多