Soalan:
Anda mencari kaedah untuk menghuraikan fail CSS dalam PHP dan mengekstrak setiap nama kelas yang mengandungi "kelas pos" dalam namanya. Output yang diingini ialah tatasusunan nama kelas ini.
Penyelesaian:
Menggunakan Ungkapan Biasa:
PHP berikut fungsi menyelesaikan tugas menggunakan biasa ungkapan:
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; }
Penggunaan:
$css = parse('css/'.$user['blog'].'.php'); print_r($css); // Output: ["#content.postclass-subcontent", "#content2.postclass-subcontent2"]
Fungsi ini menghuraikan fail CSS dan menyimpan nama kelas yang sepadan dalam tatasusunan $result. Ia kemudian mengembalikan tatasusunan.
Menggunakan Ajax dan jQuery:
Pendekatan alternatif menggunakan Ajax dan jQuery untuk mengambil fail CSS dan mengekstrak kelas yang diperlukan:
$(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] + '" />'); }); } }); });
Kod ini mengambil fail CSS, mengekstrak nama kelas yang mengandungi "kelas pos" dan membungkus elemen yang sepadan dengan DIV berdasarkan kelas CSS.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Kelas yang Mengandungi 'kelas pos' daripada Fail CSS dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!