Dengan perkembangan pesat Internet, bilangan dan skala tapak web terus berkembang. Untuk meningkatkan kebolehcapaian dan pengalaman pengguna tapak web, selalunya perlu menambahkan sejumlah besar pautan ke halaman web. Bagi sesetengah tapak web yang memerlukan pemprosesan kelompok, menyemak dan mengubah suai pautan secara manual jelas merupakan tugas yang membosankan dan terdedah kepada ralat. Oleh itu, menggunakan PHP untuk menghuraikan pautan dalam HTML telah menjadi cara yang cekap dan pantas.
1. Dapatkan fail HTML
Pertama, kita perlu mendapatkan fail HTML untuk diproses melalui PHP. PHP menyediakan pelbagai cara untuk mendapatkan fail HTML, seperti menggunakan fungsi file_get_contents, kombinasi fopen dan fread untuk membaca, dsb. Di sini, kami menggunakan fungsi file_get_contents.
$filename = 'example.html';
$html = file_get_contents($filename);
2. Huraikan pautan dalam fail HTML
Dapatkan fail HTML, kami perlu mengekstrak pautan di dalamnya setepat mungkin. Berdasarkan ini, kita boleh menggunakan ungkapan biasa atau penghurai DOM terbina dalam PHP.
Untuk mengekstrak pautan melalui ungkapan biasa, kita perlu memahami struktur asas pautan halaman HTML. Secara umumnya, pautan dalam halaman HTML dibalut dalam kandungan teks tertentu dengan teg, dan struktur asasnya adalah seperti berikut:
Oleh itu, kita boleh padankan semua pautan melalui ungkapan biasa. Kod khusus adalah seperti berikut:
$regexp ='
preg_match_all($regexp, $html, $match);
$link = array_unique($match[1]);
Kod di atas menggunakan biasa ungkapan< sebagai1*href=['"]?(2+) untuk memadankan teg dan mengekstrak https dalam atribut href: //www.php.cn/link/39cec6d4d21b5dade7544dab6881423e. Antaranya, 2+ bermaksud memadankan siri aksara tanpa petikan tunggal, petikan berganda dan ruang. Akhir sekali, gunakan fungsi array_unique untuk menyahduplikasi semua https://www.php.cn/link/39cec6d4d21b5dade7544dab6881423e.
PHP terbina dalam DOM parser menyediakan cara yang lebih mudah dan tepat untuk menghuraikan pautan dalam fail HTML. Ia boleh menukar halaman HTML kepada struktur pepohon Model Objek Dokumen (DOM), supaya pepohon dokumen boleh dilalui untuk membuat pertanyaan dan mengekstrak maklumat.
Kod khusus adalah seperti berikut:
$doc = new DOMDocument();
$doc->loadHTML($html);
$links = $doc- >getElementsByTagName ('a');
foreach ($pautan sebagai $link) {
$href = $link->getAttribute('href');
}
Dalam kod di atas, kami mula-mula menggunakan DOMDocument untuk menukar rentetan $html ke Model Objek Dokumen , dan kemudian dapatkan semua teg melalui kaedah getElementsByTagName('a'), lalui setiap teg dan ekstrak nilai atribut dalam atribut hrefnya.
3. Proses pautan
Selepas mendapatkan semua pautan, kami perlu memproses pautan ini. Kaedah pemprosesan khusus bergantung pada keperluan Berikut adalah beberapa kaedah pemprosesan biasa:
Kadang-kadang kita perlu mengubah suai bahagian tertentu pautan, seperti pautan Alih keluar awalan http://. Anda boleh menggunakan fungsi str_replace untuk menggantikan rentetan.
foreach ($pautan sebagai $link) {
$href = $link->getAttribute('href'); $new_href = str_replace('http://', '', $href); $link->setAttribute('href', $new_href);
}
Kadang-kadang kita perlu menambah semua pautan Tambah beberapa rentetan atau parameter tertentu, seperti menambah utm_campaign=xxx parameter selepas semua pautan. Boleh ditambah menggunakan penggabungan rentetan.
foreach ($pautan sebagai $link) {
$href = $link->getAttribute('href'); $new_href = $href . '?utm_campaign=xxx'; $link->setAttribute('href', $new_href);
}
Kadang-kadang kita perlu menapis Pautan tertentu , seperti pautan pengiklanan tertentu. Anda boleh menggunakan pernyataan if untuk menilai dan menapis pautan.
foreach ($pautan sebagai $link) {
$href = $link->getAttribute('href'); if (strstr($href, 'ad.')) { $link->parentNode->removeChild($link); }
}
4 Simpan fail HTML
Selepas memproses semua pautan, kami perlu menyimpan keputusan Simpan ke fail HTML. Sama seperti membaca fail HTML, gunakan fungsi file_put_contents untuk menulis ke fail.
$filename_new = 'example_new.html';
$html_new = $doc->saveHTML();
file_put_contents($filename_new, $html_new);
Secara ringkasan , menggunakan PHP untuk menghuraikan pautan dalam HTML ialah kaedah pemprosesan kelompok yang cekap dan mudah. Dapatkan pautan melalui ungkapan biasa atau penghurai DOM, kemudian proseskannya, dan akhirnya simpannya ke fail HTML, supaya anda boleh mengemas kini dan mengubah suai sejumlah besar pautan dengan cepat.
Atas ialah kandungan terperinci Menghuraikan pautan dalam HTML menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!