Maison  >  Article  >  développement back-end  >  Comment extraire les noms de classe contenant « postclass » à partir d'un fichier CSS avec PHP ?

Comment extraire les noms de classe contenant « postclass » à partir d'un fichier CSS avec PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 21:40:02747parcourir

How to Extract Class Names Containing

Utiliser PHP pour analyser les fichiers CSS

Question : Comment puis-je analyser efficacement un fichier CSS à l'aide de PHP, en extrayant spécifiquement les noms de classe contenant "postclass "?

En CSS :

#stuff {
    background-color: red;
}

#content.postclass-subcontent {
    background-color: red;
}

#content2.postclass-subcontent2 {
    background-color: red;
}

La sortie PHP souhaitée :

arrayentry1:
#content.postclass-subcontent
arrayentry2:
#content2.postclass-subcontent2

Réponse :

<code class="php">function parse($file){
    $css = file_get_contents($file);
    preg_match_all( '/(?ims)([a-z0-9\s\.\:#_\-@,]+)\{([^\}]*)\}/', $css, $arr);
    $result = array();
    foreach ($arr[0] as $i => $x){
        $selector = trim($arr[1][$i]);
        $rules = explode(';', trim($arr[2][$i]));
        $rules_arr = array();
        foreach ($rules as $strRule){
            if (!empty($strRule)){
                $rule = explode(&quot;:&quot;, $strRule);
                $rules_arr[trim($rule[0])] = trim($rule[1]);
            }
        }
        
        $selectors = explode(',', trim($selector));
        foreach ($selectors as $strSel){
            $result[$strSel] = $rules_arr;
        }
    }
    return $result;
}</code>

Vous pouvez ensuite l'utiliser de la manière suivante :

<code class="php">$css = parse('css/'.$user['blog'].'.php');
$css['#selector']['color'];</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn