29 EYLÜL 2010, ÇARŞAMBA
Bir öğesinin href özniteliği kapma
Bağlantıları bulmak için bir sayfa üzerinde çalışıyorum.
benim düzenli ifade:
/<a\s[^>]*href=(\"\'??)([^\"\' >]*?)[^>]*>(.*)<\/a>/
ama başarısız görünüyor
<a title="this" href="that">what?</a>
Ne href ilk olarak yerleştirilen bir etiket ile başa çıkmak için benim düzenli değiştirmek istiyorsunuz?
CEVAP
29 EYLÜL 2010, ÇARŞAMBA
Reliable Regex for HTML are difficult. DOM ile bunu yapmak için nasıl burada
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
echo $dom->saveHtml($node), PHP_EOL;
}
Yukarıdaki ve çıkış $html
string A
tüm elementler "outerHTML" bulur.
İçinolsundüğümün tüm metin değerleri
echo $node->nodeValue;
İçinkontrol edineğer href
öznitelik varsa yapabilirsiniz
echo $node->hasAttribute( 'href' );
İçinolsunhref
yaparsın bağlıyor
echo $node->getAttribute( 'href' );
İçindeğiştirinhref
yaparsın bağlıyor
$node->setAttribute('href', 'something else');
İçinKaldırhref
yaparsın bağlıyor
$node->removeAttribute('href');
Ayrıca href
öznitelik doğrudan XPath ile sorgulayabilirsiniz
$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
}
Ayrıca Bkz:
Bir dipnot düşmek: bu yineleniyor eminim ve 31**
Bunu Paylaş:
CSS özniteliği seçici a href çalışmıyo...
Kullanmak < için geçerli;> (çapa ...
Href özniteliği olmadan bir bağlantı e...
Nasıl dinamik olarak açısal js ile HTM...
jQuery boyutu() yöntemi vs uzunluğu öz...