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

  • Paul Schroder

    Paul Schrode

    30 Kasım 2007
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010
  • UniqueApps

    UniqueApps

    4 Ocak 2009