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

Ungkapan Biasa PHP: Bagaimana untuk memadankan semua pautan dalam HTML

王林
Lepaskan: 2023-06-22 14:08:01
asal
1397 orang telah melayarinya

Dalam pembangunan web, kita selalunya perlu berurusan dengan pautan dalam halaman HTML. Bagaimana untuk menggunakan ungkapan biasa PHP untuk memadankan semua pautan dalam halaman HTML? Mari ketahui di bawah.

Pautan dalam halaman HTML biasanya dilaksanakan melalui teg dan kami boleh memadankan pautan berdasarkan teg ini. Mula-mula, kita perlu mendapatkan kod sumber halaman HTML melalui fungsi file_get_contents() PHP, contohnya:

$html = file_get_contents('http://www.example.com');
Salin selepas log masuk

Seterusnya, kita boleh menggunakan ungkapan biasa untuk memadankan semua pautan. Berikut ialah ungkapan biasa ringkas yang sepadan dengan pautan:

$pattern = '/<a href="//m.sbmmt.com/link/d28a3097fa7cf63ad01c4f328314e2f2">//m.sbmmt.com/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';
Salin selepas log masuk

Dalam ungkapan biasa, memadankan teg pautan yang bermula dengan dan bermula dengan atribut href. href="//m.sbmmt.com/link/2b9bd744f7c0d06123d9d9557310fa80" sepadan dengan alamat pautan. >(.?) sepadan dengan teks pautan dan juga merupakan kumpulan penangkap.

Seterusnya, kita boleh menggunakan fungsi preg_match_all() untuk menggunakan ungkapan biasa pada kod sumber halaman HTML untuk memadankan semua pautan:

preg_match_all($pattern, $html, $matches);
Salin selepas log masuk

Fungsi mengembalikan tatasusunan $padanan di mana $ sepadan[ 0] mengandungi rentetan lengkap semua pautan yang sepadan, $matches[1] sepadan dengan menangkap kumpulan 1, iaitu alamat pautan, dan $matches[2] sepadan dengan menangkap kumpulan 2, iaitu teks pautan.

Akhir sekali, kita boleh mengulangi tatasusunan $matches[1], iaitu tatasusunan alamat pautan, untuk mendapatkan alamat semua pautan:

foreach ($matches[1] as $link) {
    echo $link . "
";
}
Salin selepas log masuk

Kod lengkap adalah seperti berikut:

$html = file_get_contents('http://www.example.com');
$pattern = '/<a href="//m.sbmmt.com/link/d28a3097fa7cf63ad01c4f328314e2f2">//m.sbmmt.com/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';
preg_match_all($pattern, $html, $matches);

foreach ($matches[1] as $link) {
    echo $link . "
";
}
Salin selepas log masuk

Nota , ungkapan biasa ini hanya boleh memadankan format pautan asas, contohnya:

<a href="http://www.example.com">Example</a>
Salin selepas log masuk

Jika pautan mengandungi atribut lain atau format label tidak memenuhi keperluan asas, ia tidak boleh dipadankan. Dalam aplikasi praktikal, ungkapan biasa boleh diubah suai mengikut keperluan untuk menyesuaikan diri dengan format pautan yang berbeza.

Ringkasnya, untuk menggunakan ungkapan biasa PHP untuk memadankan pautan dalam halaman HTML, anda boleh menggunakan fungsi file_get_contents() untuk mendapatkan kod sumber halaman, kemudian gunakan fungsi preg_match_all() dan ungkapan biasa yang sesuai untuk melengkapkan padanan, dan akhirnya gelung Hanya akses hasil yang sepadan.

Atas ialah kandungan terperinci Ungkapan Biasa PHP: Bagaimana untuk memadankan semua pautan dalam HTML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan