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

Ungkapan Biasa PHP: Bagaimana untuk memadankan semua pautan dalam HTML

王林
王林asal
2023-06-22 13:15:071146semak imbas

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');

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

$pattern = '/<a href="https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2">https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';

Dalam ungkapan biasa, memadankan teg pautan yang bermula dengan dan bermula dengan atribut href. href="https://www.php.cn/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);

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 . "
";
}

Kod lengkap adalah seperti berikut:

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

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

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

<a href="http://www.example.com">Example</a>

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!

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