Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan biasa PHP dalam tindakan: memadankan gaya CSS

Ungkapan biasa PHP dalam tindakan: memadankan gaya CSS

王林
王林asal
2023-06-22 18:31:40881semak imbas

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;
}

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;
}

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]);

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;
    }
    )
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);
}

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

;

Atas ialah kandungan terperinci Ungkapan biasa PHP dalam tindakan: memadankan gaya CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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