2016-07-21 34 views
0

我试图通过压缩来获取整个CSS文件。它工作正常,但我想删除空的CSS选择器。在程序上生成此文件,这样会留下一些空标签,并代替手工删除它们所有:使用PHP删除空的CSS选择器preg_replace

$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函数方法不起作用。我希望这里有人能帮助我做到这一点。

我提前感谢你。

回答

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