Frage:
Sie suchen eine Methode um eine CSS-Datei in PHP zu analysieren und jeden Klassennamen zu extrahieren, der „postclass“ im Namen enthält. Die gewünschte Ausgabe ist ein Array dieser Klassennamen.
Lösung:
Verwendung regulärer Ausdrücke:
Das folgende PHP Die Funktion führt die Aufgabe mithilfe regulärer Ausdrücke aus:
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]); if (strpos($selector, 'postclass') !== false) { $result[] = $selector; } } return $result; }
Verwendung:
$css = parse('css/'.$user['blog'].'.php'); print_r($css); // Output: ["#content.postclass-subcontent", "#content2.postclass-subcontent2"]
Diese Funktion analysiert die CSS-Datei und speichert die passenden Klassennamen im $result-Array. Anschließend wird das Array zurückgegeben.
Verwendung von Ajax und jQuery:
Ein alternativer Ansatz verwendet Ajax und jQuery, um die CSS-Datei abzurufen und die erforderlichen Klassen zu extrahieren:
$(function () { $.get('main.css', function (data) { data = data.match(/(#[a-z0-9]*?\ .?postclass.*?)\s?\{/g); if (data) { $.each(data, function (index, value) { value = value.substring(0, value.length - 2); $(value.split(' .')[0]).wrapInner('<div class="' + value.split('.')[1] + '" />'); }); } }); });
Dieser Code ruft die CSS-Datei ab, extrahiert die Klassennamen, die „postclass“ enthalten, und umschließt passende Elemente mit einem DIV basierend auf der CSS-Klasse.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich Klassen, die „postclass' enthalten, aus einer CSS-Datei mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!