Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengeluarkan Atribut href daripada Elemen dalam HTML dengan Amanah?

Bagaimanakah Saya Boleh Mengeluarkan Atribut href daripada Elemen dalam HTML dengan Amanah?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 12:47:16205semak imbas

How Can I Reliably Extract href Attributes from A Elements in HTML?

Mengekstrak Atribut href daripada A Elements

Berusaha untuk mendapatkan pautan pada halaman web, satu pendekatan biasa ialah melalui ungkapan biasa. Walau bagaimanapun, senario tertentu boleh menimbulkan cabaran, seperti apabila atribut href tidak diletakkan dahulu dalam teg A.

Pendekatan Ungkapan Biasa

regeks awal anda, menyasarkan href dalam mana-mana kedudukan dalam teg A, menghadapi kesukaran dengan kes seperti "apa?".

Penyelesaian Berasaskan DOM

Memandangkan pengehadan regex untuk penghuraian HTML yang boleh dipercayai, penyelesaian yang lebih mantap ialah DOMDocument kelas dalam PHP. Berikut ialah contoh:

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
    echo $dom->saveHtml($node), PHP_EOL;
}

Kod ini memuatkan kandungan HTML ke dalam objek DOMDocument dan kemudian mendapatkan semula semua elemen A menggunakan kaedah getElementsByTagName.

Manipulasi DOM

Menggunakan DOM, anda boleh melakukan pelbagai operasi pada tag A elemen:

  • Dapatkan Nilai Teks: Dapatkan teks dalaman elemen menggunakan $node->nodeValue.
  • Semak Atribut href: Semak sama ada elemen mempunyai atribut href menggunakan $node->hasAttribute('href').
  • Dapatkan href Atribut: Dapatkan nilai atribut href menggunakan $node->getAttribute('href').
  • Tukar Atribut href: Ubah suai nilai atribut href menggunakan $node->setAttribute('href', 'new value').
  • Alih keluar Atribut href: Padamkan atribut href menggunakan $node->removeAttribute('href').

XPath untuk Atribut Pengekstrakan:

XPath menyediakan pilihan lain untuk pengekstrakan atribut. Berikut ialah contoh:

$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//a/@href');
foreach($nodes as $href) {
    echo $href->nodeValue;
}

Sumber Tambahan:

  • Kaedah terbaik untuk menghuraikan HTML
  • DOMDocument dalam php

Perlu diperhatikan https://www.php.cn/link/274da997412973c08cf7e78724153f55 soalan anda mungkin pendua dan jawapannya mungkin boleh didapati dalam perbincangan sedia ada.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Atribut href daripada Elemen dalam HTML dengan Amanah?. 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