AlDev, наваял тебе элементарный примерчик, если что, то дополнишь под свои нужды 
| Код | <?php
function parser_css( &$in_string ) { $_CSS = array(); preg_match_all( '#((?:\.|[\w-0-9]+\.)[\w-0-9]+)\s+\{(.*?)\}#is', $in_string, $matches ); if ( isset( $matches[1] ) ) { $size = sizeof( $matches[1] ); for ( $i = 0; $i < $size; $i++ ) { $matches[1][ $i ] = trim( $matches[1][ $i ] ) ; $pos = strpos($matches[1][ $i ], '.' ); if ( $pos === 0 ) { $matches[1][ $i ] = substr( $matches[1][ $i ], 1 ); } else { $tmp = explode( '.', $matches[1][ $i ] ); $element = $tmp[0]; $matches[1][ $i ] = $tmp[1]; } $_CSS[ $matches[1][ $i ] ] = array(); if ( isset( $element ) ) { $_CSS[ $matches[1][ $i ] ]['element'] = $element; } if ( isset( $matches[2][ $i ] ) ) { $matches[2][ $i ] = trim( $matches[2][ $i ] ); preg_match_all( '#([0-9\w-]+)\s?\:\s?([0-9\w-]+)\;#is', $matches[2][ $i ], $submatches ); if ( isset( $submatches[1] ) ) { $subsize = sizeof( $submatches[1] ); for ( $j = 0; $j < $subsize; $j++ ) { $_CSS[ $matches[1][ $i ] ]['params'][ trim( $submatches[1][ $j ] ) ] = trim( $submatches[2][ $j ] ); } } } } } return $_CSS; }
$string = ' .testClassName { param : value; param1: value; } .testClassName2 { param: value; param1: value; }
div.testClassName3 { param: value; param1: value; }';
$css = parser_css( $string );
echo '<pre>'; print_r($css);
?>
|
Добавлено @ 12:12 Т.е. на входе имеем
| Код | .testClassName { param : value; param1: value; } .testClassName2 { param: value; param1: value; }
div.testClassName3 { param: value; param1: value; }
|
На выходе имеем массив
| Код | Array ( [testClassName] => Array ( [params] => Array ( [param] => value [param1] => value )
)
[testClassName2] => Array ( [params] => Array ( [param] => value [param1] => value )
)
[testClassName3] => Array ( [element] => div [params] => Array ( [param] => value [param1] => value )
)
)
|
|