Heim > Artikel > Backend-Entwicklung > PHP-Kampf gegen reguläre Ausdrücke: Passende CSS-Stile
In der Webentwicklung sind CSS-Stylesheets ein integraler Bestandteil, mit denen sich HTML-Elemente bequem formatieren lassen. Manchmal müssen wir jedoch bestimmte Stile aus einer großen CSS-Datei extrahieren und können dann die Funktion für reguläre Ausdrücke von PHP zum Abgleich verwenden. In diesem Artikel wird erläutert, wie Sie reguläre PHP-Ausdrücke verwenden, um CSS-Stile in der Praxis anzupassen.
Werfen wir zunächst einen Blick auf die Grundstruktur von CSS-Stilen:
selector { property: value; property: value; }
Ein grundlegender CSS-Stil besteht aus einem Selektor und einer Reihe von Attribut-Wert-Paaren. Der Selektor gibt das HTML-Element an, auf das der Stil angewendet werden soll, und das Attribut-Wert-Paar ist die spezifische Stileinstellung. In CSS werden Attribute und Werte durch einen Doppelpunkt „:“ getrennt, und jedes Attribut-Wert-Paar wird durch ein Semikolon „;“ getrennt.
Als nächstes veranschaulichen wir anhand eines Beispiels, wie man reguläre PHP-Ausdrücke verwendet, um CSS-Stile anzupassen.
Angenommen, wir haben eine CSS-Datei (style.css), die die folgenden Stile enthält:
h1 { font-size: 24px; font-family: Arial, sans-serif; color: #333; } p { font-size: 16px; font-family: Helvetica, Arial, sans-serif; line-height: 1.4; color: #666; } .btn { display: inline-block; padding: 10px 20px; border: none; border-radius: 4px; font-size: 16px; font-weight: bold; text-transform: uppercase; background-color: #f00; color: #fff; }
Jetzt müssen wir alle Stile der Kategorie „.btn“ aus dieser Datei extrahieren. Sie können die Funktion file_get_contents von PHP verwenden, um den gesamten Dateiinhalt zu lesen, und dann die Funktion preg_match_all zum Abgleichen verwenden.
// 读取样式文件内容 $css = file_get_contents('style.css'); // 匹配样式 $pattern = '/.btns*{([^}]+)}/'; preg_match_all($pattern, $css, $matches); // 输出匹配结果 print_r($matches[0]);
Im obigen Code verwenden Sie zunächst die Funktion file_get_contents, um den Inhalt der Stildatei zu lesen und den Inhalt in der Variablen $css zu speichern. Verwenden Sie dann die Funktion preg_match_all, um den Stil abzugleichen, und der konstruierte reguläre Ausdruck lautet „.btns*{(1+)}“:
Zum Schluss werden die passenden Ergebnisse ausgegeben.
Führen Sie den obigen Code aus und die Ergebnisse sind wie folgt:
Array ( [0] => .btn { display: inline-block; padding: 10px 20px; border: none; border-radius: 4px; font-size: 16px; font-weight: bold; text-transform: uppercase; background-color: #f00; color: #fff; } )
Wie aus den Ergebnissen ersichtlich ist, hat der reguläre Ausdruck erfolgreich den Stil der Kategorie „.btn“ abgeglichen und den gesamten Stilblock zurückgegeben.
Natürlich können wir die Attribut-Wert-Paare auch weiter extrahieren.
// 读取样式文件内容 $css = file_get_contents('style.css'); // 匹配样式 $pattern = '/.btns*{([^}]+)}/'; preg_match_all($pattern, $css, $matches); // 提取属性-值对 $pattern = '/([a-z-]+)s*:s*([^;]+);/'; foreach ($matches[1] as $block) { preg_match_all($pattern, $block, $props); print_r($props); }
Im obigen Code verwenden wir einen anderen regulären Ausdruck „([a-z-]+)s:s(2+);“, um Attribut-Wert-Paare abzugleichen:
Array ( [0] => Array ( [0] => display: inline-block; [1] => padding: 10px 20px; [2] => border: none; [3] => border-radius: 4px; [4] => font-size: 16px; [5] => font-weight: bold; [6] => text-transform: uppercase; [7] => background-color: #f00; [8] => color: #fff; ) [1] => Array ( [0] => display [1] => padding [2] => border [3] => border-radius [4] => font-size [5] => font-weight [6] => text-transform [7] => background-color [8] => color ) [2] => Array ( [0] => inline-block [1] => 10px 20px [2] => none [3] => 4px [4] => 16px [5] => bold [6] => uppercase [7] => #f00 [8] => #fff ) )
Durch das obige Beispiel haben wir gelernt, wie man reguläre PHP-Ausdrücke verwendet, um CSS-Stile anzupassen. Ich glaube, dass jeder die grundlegenden Fähigkeiten zum Erstellen regulärer Ausdrücke sowie zum Durchführen von Stilvergleichen und Attributextraktionen beherrscht. In der tatsächlichen Entwicklung können wir je nach Bedarf auch komplexere Matching- und Extraktionsvorgänge durchführen, um den Anforderungen der Verarbeitung unterschiedlicher Stile gerecht zu werden.
}
↩Das obige ist der detaillierte Inhalt vonPHP-Kampf gegen reguläre Ausdrücke: Passende CSS-Stile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!