Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich Klassennamen, die „postclass“ enthalten, aus einer CSS-Datei mit PHP?

Wie extrahiere ich Klassennamen, die „postclass“ enthalten, aus einer CSS-Datei mit PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 21:40:02747Durchsuche

How to Extract Class Names Containing

Verwenden Sie PHP zum Parsen von CSS-Dateien

Frage: Wie kann ich eine CSS-Datei effektiv mit PHP analysieren, insbesondere Klassennamen extrahieren, die „postclass "?

In CSS:

#stuff {
    background-color: red;
}

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

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

Die gewünschte PHP-Ausgabe:

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

Antwort:

<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>

Sie können es dann wie folgt verwenden:

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

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Klassennamen, die „postclass“ enthalten, aus einer CSS-Datei mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn