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

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • FD2097

    FD2097

    21 HAZİRAN 2009
  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006