Dalam pembangunan web, helaian gaya CSS adalah bahagian yang sangat diperlukan, yang boleh menetapkan gaya untuk elemen HTML dengan mudah. Walau bagaimanapun, kadangkala kita perlu mengekstrak gaya tertentu daripada fail CSS yang besar, kemudian kita boleh menggunakan fungsi ekspresi biasa PHP untuk pemadanan. Artikel ini memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan gaya CSS dalam amalan.
Mari kita lihat struktur asas gaya CSS:
selector { property: value; property: value; }
Gaya CSS asas terdiri daripada pemilih dan set pasangan nilai atribut. Pemilih menentukan elemen HTML yang gaya harus digunakan, dan pasangan nilai atribut ialah tetapan gaya khusus. Dalam CSS, atribut dan nilai dipisahkan oleh titik bertindih ":", dan setiap pasangan nilai atribut dipisahkan oleh koma bertitik ";".
Seterusnya, kami menggunakan contoh untuk menggambarkan cara menggunakan ungkapan biasa PHP untuk memadankan gaya CSS.
Andaikan kita mempunyai fail CSS (style.css) yang mengandungi gaya berikut:
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; }
Sekarang, kita perlu mengekstrak semua gaya kategori ".btn" daripada fail ini. Anda boleh menggunakan fungsi file_get_contents PHP untuk membaca keseluruhan kandungan fail, dan kemudian gunakan fungsi preg_match_all untuk dipadankan.
// 读取样式文件内容 $css = file_get_contents('style.css'); // 匹配样式 $pattern = '/.btns*{([^}]+)}/'; preg_match_all($pattern, $css, $matches); // 输出匹配结果 print_r($matches[0]);
Dalam kod di atas, fungsi file_get_contents mula-mula digunakan untuk membaca kandungan fail gaya dan menyimpan kandungan dalam pembolehubah $css. Kemudian, gunakan fungsi preg_match_all untuk memadankan gaya, dan ungkapan biasa yang dibina ialah ".btns*{(1+)}":
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; } )
// 读取样式文件内容 $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); }
:s
(2+) ;" untuk memadankan pasangan atribut-nilai: "([a-z-]+)" sepadan dengan nama atribut, dengan "[a-z-]+" bermaksud memadankan huruf kecil dan sempang "- "Sebuah rentetan terdiri daripada ", tambah kurungan "()" menunjukkan bahawa hasil padanan disimpan dalam elemen pertama dalam tatasusunan $props; "s
:sArray ( [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 ) )
Atas ialah kandungan terperinci Ungkapan biasa PHP dalam tindakan: memadankan gaya CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!