SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • kimaliz

    kimaliz

    18 Temmuz 2006
  • Subscribe!!

    Subscribe!!

    3 EKİM 2009