Menghuraikan CSS dengan PHP untuk Pengekstrakan Kelas Terpilih
Dalam artikel ini, kami berhasrat untuk menangani cabaran menghuraikan fail CSS dan mengekstrak tertentu nama kelas yang mengandungi rentetan yang telah ditetapkan. Kami mencari penyelesaian dalam PHP yang menyelesaikan tugas ini dengan berkesan.
Pernyataan Masalah:
Kami ingin menghuraikan fail CSS dan mengenal pasti semua nama kelas yang mengandungi "kelas pos" dalam nama mereka. Output yang diingini ialah tatasusunan nama kelas ini, seperti yang dilihat di bawah:
arrayentry1: #content.postclass-subcontent arrayentry2: #content2.postclass-subcontent2
Pendekatan Ungkapan Biasa:
Satu pendekatan biasa untuk menghuraikan CSS ialah menggunakan ungkapan biasa . Walau bagaimanapun, untuk keperluan khusus ini, ungkapan biasa mungkin bukan pilihan yang paling sesuai. Contoh CSS yang disediakan mengandungi berbilang pemilih dengan struktur kompleks, menjadikannya mencabar untuk mengekstrak nama kelas yang diingini dengan tepat menggunakan ungkapan biasa sahaja.
Penyelesaian Berasaskan PHP:
Sebaliknya bergantung semata-mata pada ungkapan biasa, kami membentangkan penyelesaian berasaskan PHP yang memudahkan penghuraian proses:
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(":", $strRule); $rules_arr[trim($rule[0])] = trim($rule[1]); } } $selectors = explode(',', trim($selector)); foreach ($selectors as $strSel){ $result[$strSel] = $rules_arr; } } return $result; }
Penggunaan:
Untuk menggunakan penyelesaian ini, dapatkan semula kandungan fail CSS ke dalam pembolehubah. Kemudian, panggil fungsi parse() dengan kandungan fail sebagai hujah. Fungsi ini mengembalikan tatasusunan yang mengandungi nama kelas yang dikehendaki sebagai kunci dan peraturannya sebagai nilai. Contohnya:
$css = parse('css/'.$user['blog'].'.php'); $css['#selector']['color'];
Pendekatan ini membolehkan penghuraian fail CSS yang lebih dinamik dan disasarkan, menjadikannya fleksibel untuk pelbagai keperluan penghuraian.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak Kelas CSS Tertentu dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!