Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan Biasa PHP: Bagaimana untuk memadankan semua tag meta dalam HTML

Ungkapan Biasa PHP: Bagaimana untuk memadankan semua tag meta dalam HTML

WBOY
WBOYasal
2023-06-22 22:21:06869semak imbas

Dalam pembangunan web, tag meta ialah elemen yang sangat penting, yang menyediakan maklumat tambahan tentang kandungan halaman web, seperti tajuk halaman web, penerangan halaman web, kata kunci, dll. Semasa memproses halaman HTML, kadangkala anda perlu menggunakan ungkapan biasa untuk memadankan teg meta dalam kod bahagian hadapan. Mari perkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan semua teg meta dalam halaman HTML.

Pertama sekali, kita perlu memahami cara konvensional menulis tag meta dalam halaman HTML Format umum adalah seperti berikut:

<meta charset="UTF-8">
<meta name="description" content="这里是网页的描述">
<meta name="keywords" content="这里是网页的关键词">
<title>这里是网页标题</title>

Mengikut templat ini, kita boleh menggunakan ungkapan biasa untuk. padankan tag meta ini. Mula-mula, kita perlu mendapatkan kod sumber halaman HTML, dan kemudian gunakan fungsi preg_match_all() PHP untuk memadankan tag meta di dalamnya, seperti yang ditunjukkan di bawah:

$html = file_get_contents("http://www.example.com");
preg_match_all('/<meta.*?>/i', $html, $matches);
print_r($matches);

Dalam kod di atas, mula-mula gunakan file_get_contents () fungsi untuk mendapatkan Dapatkan kod sumber halaman HTML, kemudian gunakan fungsi preg_match_all() untuk memadankan semua teg meta dalam kod sumber dan menyimpan hasil yang sepadan dalam pembolehubah $matches. Antaranya, /6a04ca81eba32ac506955b5caa466824/i ialah ungkapan biasa yang digunakan untuk memadankan teg meta, di mana 7b9978089859e17586927ffab2054d52 i bermakna kes itu diabaikan apabila memadankan.

Hasil pelaksanaan kod di atas mungkin seperti berikut:

Array
(
    [0] => Array
        (
            [0] => <meta charset="UTF-8">
            [1] => <meta name="description" content="这里是网页的描述">
            [2] => <meta name="keywords" content="这里是网页的关键词">
        )

)

Kami dapat melihat bahawa melalui fungsi preg_match_all(), kami berjaya memadankan semua tag meta dalam halaman HTML dan akan memadankan keputusan Disimpan dalam tatasusunan $matches.

Pada masa yang sama, jika kita perlu memadankan nilai atribut tertentu dalam teg meta, seperti set aksara, nama, kandungan, dll., kita juga boleh menambah peraturan padanan yang sepadan dengan ungkapan biasa di atas, seperti yang ditunjukkan di bawah:

$html = file_get_contents("http://www.example.com");
preg_match_all('/<metas+.*?charset="(S+).*?>/i', $html, $matches);
print_r($matches);

Dalam kod di atas, kami menambah peraturan padanan s+ untuk memadankan ruang antara atribut label, dan kemudian menambahkan peraturan padanan charset="(S+)" pada ungkapan biasa kepada Memadankan atribut charset dan nilai atributnya dalam teg meta. Di mana S+ bermaksud memadankan mana-mana aksara dalam set aksara kecuali ruang, dan + bermakna set aksara muncul sekurang-kurangnya sekali. Selepas menjalankan kod di atas, output mungkin kelihatan seperti ini:

Array
(
    [0] => Array
        (
            [0] => <meta charset="UTF-8">
        )

    [1] => Array
        (
            [0] => UTF-8
        )

)

Daripada hasil padanan di atas, kita dapat melihat bahawa atribut charset dan nilai atributnya dalam halaman telah berjaya dipadankan.

Ringkasnya, dengan menggunakan ungkapan biasa PHP, kami boleh memadankan pelbagai elemen secara fleksibel dalam halaman HTML, termasuk teg meta. Perlu diingat bahawa walaupun ungkapan biasa adalah mudah, mereka juga mempunyai had tertentu Sebagai contoh, mereka tidak boleh mengendalikan beberapa teg bersarang yang kompleks, jadi anda perlu berhati-hati apabila menggunakan ungkapan biasa.

Atas ialah kandungan terperinci Ungkapan Biasa PHP: Bagaimana untuk memadankan semua tag meta 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