<?php

// ------------------------------------------------------------------------- //
// "Parser" un fichier CSS                                                   //
// ------------------------------------------------------------------------- //
// Auteur: Dj ThuG <gotnospirit@hotmail.com>                                 //
// Web:                                                                      //
// ------------------------------------------------------------------------- //

function Get_CSSData( $filename = '' )
{
    if ( @
file_exists($filename) && '' != $filename )
    {
        
$CSSFileContent = implode( '', file($filename) );

        
$Tb = array();
        
$Tb2 = array();
        
$Tmp = array();
        
$Tb_Dataz = array();
        
preg_match_all( '/(.[^\{\}]*)\{(.[^\{\}]*)\}/', $CSSFileContent, $Tb2 );

        if (
count( $Tb2 ) == 3 )
        {
            foreach(
$Tb2[1] AS $idx=>$declar )
                
$Tb[trim($declar) ] = trim( $Tb2[2][$idx] );
            unset(
$Tb2 );
            foreach(
$Tb AS $declar=>$data )
            {
                
$TbDec = explode( ',' , $declar );
                foreach(
$TbDec AS $idx => $each_declar )
                    
$Tmp[ $each_declar ][] = $data;
            }
            unset(
$Tb );

            foreach(
$Tmp AS $declar=>$dataz )
            {
                
$Tmp_Tb = array();
                foreach(
$dataz AS $idx=>$each_data )
                {
                    
$Tmp_Data = explode( ';' , $each_data );
                    foreach(
$Tmp_Data AS $idx=>$ligne )
                        
$Tmp_Dataz = explode( ':' , $ligne );
                    if (
2 == count( $Tmp_Dataz ) )
                        
$Tmp_Tb[ trim($Tmp_Dataz[0]) ] = trim( $Tmp_Dataz[1] );
                }
            }
            
$Tmp[ $declar ] = $Tmp_Tb;
        }
        
$Tb_Dataz = $Tmp;
        unset(
$Tmp );

        return
$Tb_Dataz;
    }
    else
        die(
'[Get_CSSData] fichier non spécifié' );
}

/*
Retourne un array dans ce genre :
> .date :
>> font-family = Verdana
>> font-size = 10px
> A:active :
>> font-family = Verdana
>> font-size = 10px
>> text-decoration = none
>> color = #BC0004
> A:visited :
>> text-decoration = none
>> color = #A0A0A0
> A:link :
>> text-decoration = none
>> color = #BEBEBE
> A:hover :
>> text-decoration = underline
*/

?>