Ungkapan biasa PHP dalam tindakan: memadankan gaya CSS

王林
Lepaskan: 2023-06-22 18:38:01
asal
921 orang telah melayarinya

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

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

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

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+)}":

  • " .btn" sepadan dengan pemilih kategori ".btn";
  • "s*" sepadan dengan 0 atau lebih aksara ruang kosong; >
  • +)}" sepadan dengan set pasangan nilai atribut dalam kurungan kerinting, dengan "
  • 1+" bermaksud memadankan mana-mana aksara kecuali kurungan kerinting kanan "}" , menambah kurungan "()" bermakna menyimpan hasil padanan dalam tatasusunan $matches. Akhir sekali, keluarkan hasil yang sepadan. Jalankan kod di atas dan hasilnya adalah seperti berikut:
  • 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;
    }
    )
    Salin selepas log masuk
Seperti yang dapat dilihat daripada keputusan, ungkapan biasa berjaya memadankan gaya kategori ".btn" dan mengembalikan keseluruhan blok gaya.

Sudah tentu, kita juga boleh mengekstrak pasangan nilai-sifat.

// 读取样式文件内容
$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);
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan ungkapan biasa lain "([a-z-]+)s

: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

:s
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!