Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $css_rules = array();
- $css_end_rules = array();
- $css_end_rules_done = array();
- $css_start = file_get_contents("path/to/css.stylesheet");
- $css = $css_start;
- while(strpos($css,'media') !== FALSE) {
- $stop = false;
- preg_match("/(@(.+){(.+){(.+);\s?}}){1}/mU",$css,$matches);
- $css = str_replace($matches[0],'',$css);
- foreach($matches as $k=>$v) { if($v != $matches[0] && !$stop) {
- $nk = '@'.$v;
- if(!$css_rules[$nk]) $css_rules[$nk] = '';
- $css_rules[$nk] = $css_rules[$nk].trim(substr(str_replace($nk,'',$matches[0]),1,-1));
- $stop = true;
- } }
- }
- $css_rules['regular'] = $css;
- $i = 0;
- foreach($css_rules as $k=>$v) { if($i == 0) { $i++; } else {
- $new_css_parts = explode('}',$v);
- foreach($new_css_parts as $ncpk=>$ncpv) {
- $new_css_rules = explode('{',$ncpv);
- if(!$css_end_rules[$k][$new_css_rules[0]] && $new_css_rules[1]) $css_end_rules[$k][$new_css_rules[0]] = '';
- if($new_css_rules[1]) $css_end_rules[$k][trim($new_css_rules[0])] = $css_end_rules[$k][$new_css_rules[0]].trim($new_css_rules[1]);
- }
- } }
- foreach($css_end_rules as $k=>$v) {
- $nk = (substr($k,-1)==' ')?substr($k,0,strlen($k)-1):$k;
- if(!is_array($css_end_rules_done[trim($nk)])) $css_end_rules_done[trim($nk)] = array();
- foreach($v as $id=>$css_group) {
- if(!$css_group) {
- unset($v[$id]);
- } else {
- $nid = (substr($id,-1)==' ')?substr($id,0,strlen($id)-1):$id;
- if(!is_array($css_end_rules_done[$nk][trim($nid)])) $css_end_rules_done[$nk][trim($nid)] = array();
- $groups = explode(';',$css_group);
- foreach($groups as $gv) {
- $rule = explode(':',$gv);
- if(trim($rule[0]) && trim($rule[1]) && strpos($rule[0],'//')===FALSE) $css_end_rules_done[$nk][$id][trim($rule[0])] = trim($rule[1]);
- }
- }
- }
- }
- arsort($css_end_rules_done);
- $regular_css = $css_end_rules_done['regular'];
- unset($css_end_rules_done['regular']);
- $tab = " ";
- $double_tab = $tab.$tab;
- $triple_tab = $tab.$double_tab;
- $end_css_style = "";
- foreach($css_end_rules_done as $group_media=>$rules) {
- $end_css_style = $end_css_style.trim($group_media." {").PHP_EOL;
- foreach($rules as $id=>$rule) {
- $end_css_style = $end_css_style.$tab.trim($id." {").PHP_EOL;
- foreach($rule as $param=>$value) {
- $end_css_style = $end_css_style.$double_tab.$param.": ".trim($value).";".PHP_EOL;
- }
- $end_css_style = $end_css_style.$tab."}".PHP_EOL;
- }
- $end_css_style = $end_css_style."}".PHP_EOL;
- }
- foreach($regular_css as $id=>$rule) {
- $end_css_style = $end_css_style.trim($id." {").PHP_EOL;
- foreach($rule as $param=>$value) {
- $end_css_style = $end_css_style.$tab.$param.": ".trim($value).";".PHP_EOL;
- }
- $end_css_style = $end_css_style."}".PHP_EOL;
- }
- echo '<pre>';
- echo $end_css_style;
- echo '</pre>';
- /*
- echo '<pre>';
- print_r($css_end_rules_done);
- echo '</pre>';
- */
- //echo '<br>';
- //echo $css_start;
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement