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

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • bored before i even began

    bored before

    30 Mart 2009
  • Watcher3223

    Watcher3223

    15 Kasım 2007