Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan biasa PHP: cara memadankan semua pautan e-mel dalam HTML

Ungkapan biasa PHP: cara memadankan semua pautan e-mel dalam HTML

WBOY
WBOYasal
2023-06-22 10:49:54864semak imbas

Sama ada pada halaman web atau dalam e-mel, pautan e-mel ialah salah satu elemen biasa kami. Dalam halaman web, kami mungkin mahu memadankan dan mencari semua pautan e-mel sekaligus. Pada ketika ini, menggunakan ungkapan biasa PHP boleh mencapai matlamat ini dengan mudah.

PHP ialah bahasa skrip pelayan yang digunakan secara meluas yang boleh digunakan untuk tugas seperti memproses borang HTML, mencipta halaman web dinamik dan berinteraksi dengan pangkalan data. Terdapat banyak fungsi terbina dalam dalam PHP yang boleh memanipulasi rentetan dan ungkapan biasa dengan mudah. Antaranya, fungsi preg_match_all() digunakan untuk memadankan semua subrentetan yang sepadan dengan ungkapan biasa yang diberikan dalam sekeping teks.

Seterusnya, kami akan menerangkan cara menggunakan fungsi preg_match_all() PHP untuk memadankan semua pautan e-mel dalam HTML.

  1. Buat ungkapan biasa

Pertama, kita perlu mencipta ungkapan biasa untuk memadankan semua pautan e-mel. Di sini, kita boleh mempertimbangkan untuk menggunakan ungkapan biasa yang agak mudah untuk mencapai matlamat. Sebagai contoh, kita boleh menggunakan ungkapan biasa berikut untuk memadankan format pautan e-mel standard:

[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}

Ungkapan biasa ini boleh memadankan huruf atau nombor yang bermula dengan huruf atau nombor, diikuti dengan beberapa aksara pilihan (seperti titik, garis bawah, tanda tambah, tanda tolak, dsb.), diikuti dengan simbol @ dan nama domain e-mel. Antaranya, nama domain terdiri daripada huruf dan nombor, dan boleh mempunyai beberapa peringkat nama domain, dipisahkan oleh titik. Akhir sekali, regex ini juga memerlukan nama domain peringkat atas domain itu terdiri daripada dua atau lebih huruf besar. Kita boleh menyimpan ungkapan biasa ini ke dalam pembolehubah dalam PHP, contohnya:

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
  1. Muat kandungan fail HTML

Seterusnya, kita perlu memuatkan kandungan daripada Bacaan HTML kandungan daripada fail dan simpan ke pembolehubah rentetan. Dalam PHP, kita boleh menggunakan fungsi file_get_contents() untuk membaca kandungan mana-mana rangkaian atau fail tempatan. Sebagai contoh, kita boleh membaca kandungan daripada fail tempatan dengan kod berikut:

$html = file_get_contents('test.html');
  1. Memadankan semua pautan e-mel yang layak

Kini, kami mempunyai ungkapan biasa yang disimpan dalam pembolehubah $pattern, dan kandungan fail HTML yang disimpan dalam pembolehubah $html. Seterusnya, kita boleh menggunakan fungsi preg_match_all() PHP untuk memadankan semua pautan e-mel yang memenuhi kriteria. Fungsi ini perlu lulus dalam tiga parameter: ungkapan biasa yang akan dipadankan, teks yang akan dipadankan dan tatasusunan untuk menyimpan hasil yang sepadan.

Di sini, kami boleh menggunakan kod berikut untuk mencapai matlamat kami:

$matches = array(); 
preg_match_all($pattern, $html, $matches);

Dalam kod ini, kami mencipta tatasusunan kosong $matches untuk menyimpan hasil padanan ungkapan biasa . Kemudian, gunakan fungsi preg_match_all() untuk memadankan semua pautan e-mel yang layak dan simpan hasilnya dalam pembolehubah $matches.

  1. Keputusan padanan keluaran

Akhir sekali, kita boleh lelaran melalui pembolehubah $matches dan mengeluarkan semua pautan e-mel yang sepadan. Sebagai contoh, kita boleh menggunakan kod berikut untuk mengeluarkan hasil padanan:

foreach ($matches[0] as $match) {
    echo $match . "<br/>";
}

Dalam kod ini, kita mengulangi elemen pertama pembolehubah $matches (iaitu tatasusunan yang menyimpan semua hasil padanan), dan Cetak keputusan setiap perlawanan ke skrin.

Kod lengkap adalah seperti berikut:

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
$html = file_get_contents('test.html');
$matches = array(); 
preg_match_all($pattern, $html, $matches);

foreach ($matches[0] as $match) {
    echo $match . "<br/>";
}

Kod di atas boleh memadankan semua pautan e-mel daripada fail bernama test.html dan mengeluarkan hasilnya ke skrin.

Ringkasan:

Untuk memadankan semua pautan e-mel dalam PHP, anda boleh menggunakan fungsi preg_match_all() dan ungkapan biasa. Pertama, kita perlu mencipta ungkapan biasa untuk memadankan format pautan e-mel standard. Kemudian, kita perlu menggunakan fungsi file_get_contents() untuk membaca kandungan HTML daripada fail tempatan atau fail rangkaian dan menyimpan kandungan tersebut ke dalam pembolehubah rentetan. Seterusnya, kita boleh menggunakan fungsi preg_match_all() untuk memadankan semua pautan e-mel yang layak dan menyimpan hasilnya ke dalam tatasusunan. Akhir sekali, kita boleh mengulangi setiap perlawanan dalam tatasusunan dan mencetaknya ke skrin.

Atas ialah kandungan terperinci Ungkapan biasa PHP: cara memadankan semua pautan e-mel 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