Soalan: Bagaimanakah saya boleh menghuraikan fail CSS dengan berkesan menggunakan PHP, khususnya mengekstrak nama kelas yang mengandungi "kelas pos "?
Dalam CSS:
#stuff { background-color: red; } #content.postclass-subcontent { background-color: red; } #content2.postclass-subcontent2 { background-color: red; }
Output PHP yang diingini:
arrayentry1: #content.postclass-subcontent arrayentry2: #content2.postclass-subcontent2
Jawapan:
<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]); $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; }</code>
Anda kemudian boleh menggunakannya seperti berikut:
<code class="php">$css = parse('css/'.$user['blog'].'.php'); $css['#selector']['color'];</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nama Kelas yang Mengandungi \'postclass\' daripada Fail CSS dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!