Rumah >pembangunan bahagian belakang >tutorial php >Ungkapan Biasa PHP: Bagaimana untuk memadankan semua menu lungsur turun dalam HTML

Ungkapan Biasa PHP: Bagaimana untuk memadankan semua menu lungsur turun dalam HTML

PHPz
PHPzasal
2023-06-23 09:40:431334semak imbas

Dalam pembangunan web, menu lungsur ialah jenis kawalan yang biasa. Dalam sesetengah kes, kita perlu memadankan semua elemen menu lungsur turun dalam HTML dengan ungkapan biasa PHP, seperti dalam kes perangkak atau pengikisan data. Artikel ini akan menunjukkan kepada anda cara menggunakan ungkapan biasa PHP untuk memadankan semua menu lungsur turun dalam HTML.

  1. Pertama, kita perlu memahami struktur HTML kawalan menu lungsur. Menu lungsur turun biasanya terdiri daripada teg pilihan dan sebarang bilangan teg pilihan. Sebagai contoh, struktur HTML menu lungsur turun mudah kelihatan seperti ini:
<select>
  <option value="1">选项1</option>
  <option value="2">选项2</option>
  <option value="3">选项3</option>
</select>
  1. Seterusnya, kita boleh menggunakan fungsi ungkapan biasa PHP preg_match_all() untuk memadankan semua elemen menu lungsur turun . Sintaks fungsi ini adalah seperti berikut:
preg_match_all(pattern, subject, matches);

di mana corak mewakili ungkapan biasa, subjek ialah rentetan yang hendak dicari dan padanan ialah tatasusunan hasil dipadankan.

  1. Untuk kawalan menu lungsur, kita boleh menggunakan ungkapan biasa berikut untuk memadankan struktur HTMLnya:
/<select[^>]*>(.*?)</select>/s

Ungkapan biasa ini boleh memadankan semua teg terpilih, termasuk Tag pilihan. Antaranya, mewakili sempadan perkataan, 1 mewakili sifar atau lebih bukan-">" aksara, (.?) mewakili mod tidak tamak Semuanya, s bermakna biarkan "." sepadan dengan semua aksara termasuk baris baharu.

Berikut ialah contoh kod lengkap:

$html = '
         ';

preg_match_all('/<select[^>]*>(.*?)</select>/s', $html, $matches);

print_r($matches);

Jalankan kod di atas dan keluarkan keputusan berikut:

Array
(
    [0] => Array
        (
            [0] => <select>
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
         </select>
            [1] => <select>
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
         </select>
        )

    [1] => Array
        (
            [0] => 
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
         )
            [1] => 
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
         )
        )

)

Susun atur hasil mengandungi dua elemen, sepadan dengan dua HTML kod untuk menu lungsur. Jika terdapat lebih banyak menu lungsur pada halaman, ia juga akan dipadankan dan disimpan dalam tatasusunan hasil.

  1. Dalam aplikasi praktikal, kita mungkin juga perlu menggunakan ungkapan biasa untuk mengekstrak nilai dan teks setiap pilihan dalam menu lungsur. Sebagai contoh, kod berikut boleh mengekstrak semua pilihan daripada tatasusunan hasil:
foreach ($matches[1] as $select) {
    preg_match_all('/<option value="(.*?)">(.*?)</option>/s', $select, $options);
    print_r($options);
}

Hasil output adalah seperti berikut:

Array
(
    [0] => Array
        (
            [0] => <option value="1">选项1</option>
            [1] => <option value="2">选项2</option>
            [2] => <option value="3">选项3</option>
        )

    [1] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 选项1
            [1] => 选项2
            [2] => 选项3
        )

)

Perhatikan bahawa "(.*? )" sepadan nilai dan teks pilihan masing-masing. Jika anda perlu mengekstrak atribut lain, seperti gaya atau ID pilihan, anda juga boleh menambah corak yang sepadan dalam ungkapan biasa.


  1. >

Atas ialah kandungan terperinci Ungkapan Biasa PHP: Bagaimana untuk memadankan semua menu lungsur turun dalam HTML. 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