Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Klassennamen, die „postclass' enthalten, mit PHP aus einer CSS-Datei extrahieren?
Eine CSS-Datei mit PHP analysieren: Ein programmatischer Ansatz
Für eine erweiterte CSS-Manipulation ist das Parsen mit Programmierung unerlässlich. PHP bietet ein robustes Toolset für die CSS-Analyse, und dieser Artikel befasst sich mit einer speziellen Technik zum Extrahieren von Klassennamen, die einen bestimmten Teilstring enthalten.
Das Problem:
Gegeben ein CSS In einer Datei mit mehreren Klassendeklarationen besteht das Ziel darin, ein Array von Klassennamen abzurufen, die „postclass“ in ihrem Namen enthalten.
Die Lösung:
PHPs preg_match_all() Die Funktion kann reguläre Ausdrücke in einer Zeichenfolge analysieren. Hier ist ein angepasster regulärer Ausdruck, der diese Aufgabe erfüllt:
<code class="php">/(#[a-z0-9]*?\ .?postclass.*?)\s?\{/g</code>
Diese Regex erfasst jede CSS-Deklaration, die mit einem Hash (#) beginnt, gefolgt von einer beliebigen Kombination aus alphanumerischen Zeichen, einem Punkt (.) und der Teilzeichenfolge „Nachkurs.“ Das Leerzeichen und die geschweifte Klammer kennzeichnen den Beginn eines Regelsatzes.
Der Code:
<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]); $selectors = explode(',', trim($selector)); foreach ($selectors as $strSel) { if (strpos($strSel, 'postclass') !== false) { $result[] = $strSel; } } } return $result; }</code>
Verwendung:
<code class="php">$arrayClasses = parse('cssfile.css'); print_r($arrayClasses); // Outputs: ['#content.postclass-subcontent', '#content2.postclass-subcontent2']</code>
Durch die Verwendung dieses Ansatzes können Entwickler bestimmte Klassennamen basierend auf einem Muster aus einer CSS-Datei extrahieren und so eine anpassbare CSS-Manipulation innerhalb von PHP-Skripten ermöglichen.
Das obige ist der detaillierte Inhalt vonWie kann ich Klassennamen, die „postclass' enthalten, mit PHP aus einer CSS-Datei extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!