페이지에서 링크를 찾으려는 일반적인 접근 방식은 정규식을 사용하는 것입니다. 그러나 다음과 같은 경우:
<a title="this" href="that">what?</a>
href 속성이 a 태그 내에서 먼저 배치되지 않은 경우 다음 정규 표현식이 실패할 수 있습니다.
/<a\s[^>]*href=(\"\'??)([^\"\' >]*?)[^>]*>(.*)<\/a>/
에 대한 신뢰할 수 있는 정규 표현식 찾기 HTML을 처리하는 것은 어려울 수 있습니다. 대안으로, 이러한 목적으로 DOM(Document Object Model)을 사용하는 것을 고려해 보십시오.
다음은 DOM을 사용하여 A에서 href 속성 및 기타 정보를 검색하는 방법입니다. 요소:
$dom = new DOMDocument; $dom->loadHTML($html); // Loop through all 'a' elements foreach ($dom->getElementsByTagName('a') as $node) { // Output the entire 'a' element's outer HTML echo $dom->saveHtml($node), PHP_EOL; // Get the node's text value echo $node->nodeValue; // Check if the node has a 'href' attribute echo $node->hasAttribute( 'href' ); // Get the 'href' attribute's value echo $node->getAttribute( 'href' ); // Change the 'href' attribute's value $node->setAttribute('href', 'something else'); // Remove the 'href' attribute $node->removeAttribute('href'); }
XPath는 또한 href 속성과 같은 특정 속성을 쿼리하는 데 사용됩니다.
$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 }
DOM을 사용하면 A 요소에서 href와 같은 속성을 쉽게 검색하고 조작할 수 있습니다. 이 접근 방식은 정규 표현식보다 HTML을 처리하는 더 안정적이고 유연한 방법을 제공합니다.
위 내용은 HTML의 `` 요소에서 'href' 속성을 안정적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!