Regex yang andal untuk HTML itu sulit . Berikut ini cara melakukannya dengan DOM :
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
echo $dom->saveHtml($node), PHP_EOL;
}
Di atas akan mencari dan mengeluarkan "outerHTML" dari semua A
elemen di$html
string.
Untuk mendapatkan semua nilai teks dari node, Anda melakukannya
echo $node->nodeValue;
Untuk memeriksa apakah href
atribut tersebut ada, Anda dapat melakukannya
echo $node->hasAttribute( 'href' );
Untuk mendapatkan yang href
atribut Anda akan melakukan
echo $node->getAttribute( 'href' );
Untuk mengubah yang href
atribut Anda akan melakukan
$node->setAttribute('href', 'something else');
Untuk menghapus satu href
atribut yang akan Anda lakukan
$node->removeAttribute('href');
Anda juga dapat menanyakan href
atribut secara langsung dengan XPath
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//a/@href');
foreach($nodes as $href) {
echo $href->nodeValue; // echo current attribute value
$href->nodeValue = 'new value'; // set new attribute value
$href->parentNode->removeAttribute('href'); // remove attribute
}
Lihat juga:
Di samping itu: Saya yakin ini adalah duplikat dan Anda dapat menemukan jawabannya di suatu tempat di sini