Rumah > hujung hadapan web > tutorial css > Bagaimana untuk Mengekstrak Kelas CSS Tertentu dengan PHP?

Bagaimana untuk Mengekstrak Kelas CSS Tertentu dengan PHP?

Susan Sarandon
Lepaskan: 2024-11-15 09:24:02
asal
793 orang telah melayarinya

How to Extract Specific CSS Classes with PHP?

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 melaksanakan 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
Salin selepas log masuk

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 mempersembahkan penyelesaian berasaskan PHP yang memudahkan proses penghuraian:

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;
}
Salin selepas log masuk

Penggunaan:

Untuk menggunakan penyelesaian ini, dapatkan semula Kandungan fail CSS menjadi 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'];
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan