Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengekstrak maklumat daripada halaman web: amalan terbaik dengan PHP dan ungkapan biasa

Mengekstrak maklumat daripada halaman web: amalan terbaik dengan PHP dan ungkapan biasa

王林
王林asal
2023-08-10 17:12:15730semak imbas

Mengekstrak maklumat daripada halaman web: amalan terbaik dengan PHP dan ungkapan biasa

Amalan Terbaik untuk PHP dan Ungkapan Biasa

Ekspresi biasa ialah alat yang berkuasa untuk pemadanan corak dan mencari teks. Dalam PHP, ungkapan biasa digunakan secara meluas dan boleh digunakan untuk mengesahkan input pengguna, mengekstrak data, menggantikan rentetan dan banyak lagi. Walau bagaimanapun, disebabkan kerumitan sintaksis dan sifat ungkapan biasa yang terdedah kepada ralat, kami memerlukan beberapa amalan terbaik untuk meningkatkan kebolehbacaan dan kecekapan kod.

  1. Gunakan pola ungkapan biasa yang telah disusun terlebih dahulu
    Dalam PHP, ungkapan biasa biasanya dikelilingi oleh garis miring (/), contohnya: /pattern/. Jika anda menggunakan ungkapan biasa yang sama beberapa kali dalam satu gelung, anda boleh menggunakan mod prapenyusun untuk meningkatkan prestasi. Contohnya:

    $pattern = '/pattern/';
    for ($i=0; $i<100; $i++) {
        if (preg_match($pattern, $input)) {
            // do something
        }
    }

    Dengan cara ini, kompilasi ungkapan biasa hanya akan berlaku sekali, bukannya menyusun setiap masa, yang meningkatkan kecekapan pelaksanaan kod.

  2. Gunakan pembatas untuk mengelakkan aksara melarikan diri dalam ungkapan biasa
    Dalam ungkapan biasa, beberapa aksara khas perlu dipadankan menggunakan aksara melarikan diri. Walau bagaimanapun, jika ungkapan itu mengandungi sejumlah besar aksara slash, kita boleh menggunakan pembatas untuk mengelakkan pertindihan aksara melarikan diri. Pembatas biasa termasuk: #, ~, /, dsb. Contohnya:

    $pattern = '#http://www.example.com#';
    if (preg_match($pattern, $input)) {
        // do something
    }

    Dengan cara ini, kita tidak perlu melepaskan garis miring dalam ungkapan biasa, yang meningkatkan kebolehbacaan kod.

  3. Menggunakan kumpulan tangkapan ungkapan biasa
    Kumpulan tangkapan ialah ciri yang sangat berguna, yang boleh digunakan untuk mengekstrak bahagian tertentu ungkapan biasa. Menangkap kumpulan ditakrifkan menggunakan kurungan (). Dengan menggunakan kumpulan penangkapan, kita boleh mendapatkan kandungan yang dipadankan dengan lebih mudah. Contohnya:

    $pattern = '/(d{4})-(d{2})-(d{2})/';
    if (preg_match($pattern, $input, $matches)) {
        $year = $matches[1];
        $month = $matches[2];
        $day = $matches[3];
        // do something
    }

    Dalam contoh di atas, kami menggunakan tiga kumpulan penangkapan untuk memadankan format tarikh dan menyimpan tahun, bulan dan hari yang dipadankan kepada pembolehubah yang sepadan.

  4. Gunakan mod tidak tamak (Mod Malas)
    Ekspresi biasa berada dalam mod tamak secara lalai, yang bermaksud memadankan seberapa banyak aksara yang mungkin. Jika kita perlu memadankan sesedikit aksara yang mungkin, kita boleh menggunakan tanda soal (?) untuk menggunakan mod tidak tamak. Contohnya:

    $pattern = '/<.*?>/';
    if (preg_match($pattern, $input, $match)) {
        // do something
    }

    Dalam contoh di atas, kami menggunakan mod tidak tamak untuk memadankan teg HTML dan hanya memadankan sesedikit aksara yang mungkin.

Ringkasan:
Gabungan PHP dan ungkapan biasa boleh memberikan bantuan yang besar untuk kerja pembangunan kami. Dengan menggunakan mod yang telah dikompilasi, pembatas, kumpulan penangkapan dan mod tidak tamak, kami boleh menggunakan ungkapan biasa dengan lebih cekap, meningkatkan kebolehbacaan dan prestasi kod. Walau bagaimanapun, ungkapan biasa perlu digunakan dengan berhati-hati, dan memilih alat dan kaedah yang betul adalah penting. Teruskan belajar dan mencuba dalam amalan, dan anda akan menemui kuasa ungkapan biasa.

Atas ialah kandungan terperinci Mengekstrak maklumat daripada halaman web: amalan terbaik dengan PHP dan ungkapan biasa. 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