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

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011