2012-07-09 23 views
14
ile etiket öznitelik değerini değiştir

Bir etiketin özniteliğinin değerini PHP DOMDocument ile değiştirmek istiyorum.PHP DOMDocument

$dom = new domDocument; 
$dom->loadHTML('<a href="http://foo.bar/">Click here</a>'); 

ben "href" değerini "değiştirmek istediğiniz şu şekildedir:

<a href="http://foo.bar/">Click here</a> 

PHP yukarıdaki kodu yükleyecektir: Örneğin

, biz HTML Bu çizgi var demek http://google.com/ "PHP'nin DOMDocument uzantısını kullanarak. Mümkün mü?

Yardımlarınız için her zaman olduğu gibi teşekkürler!

cevap

21
$dom = new DOMDocument(); 
$dom->loadHTML('<a href="http://foo.bar/">Click here</a>'); 

foreach ($dom->getElementsByTagName('a') as $item) { 

    $item->setAttribute('href', 'http://google.com/'); 
    echo $dom->saveHTML(); 
    exit; 
} 
+0

Sooo çok! – apparatix

4
$dom = new domDocument; 
$dom->loadHTML('<a href="http://foo.bar/">Click here</a>'); 

$elements = $dom->getElementsByTagName('a'); 

if($elements instanceof DOMNodeList) 
    foreach($elements as $domElement) 
     $domElement->setAttribute('href', 'http://www.google.com/'); 
+1

Bir tür denetimi eklediğinizden, ancak C-gibi dillerde * her zaman * bir kural (daha sonra eklerseniz bile) küme parantezinde bir koşul veya döngü gövdesini eklemenin iyi bir fikir olduğunu lütfen unutmayın başka bir açıklama ve eklemeler eklemeyi umuyoruz * görünecek * gerçekten değilken vücudun bir parçası gibi, bu gerçekten zor-bulmak hatalara neden olabilir). – ebohlman

+0

Tamam. Teşekkür ederiz – iDexter

+0

Tip kontrol aslında burada oldukça işe yaramaz; DOMDocument :: getElementsByTagName' her zaman bir "DOMNodeList" döndürür, böylece "if" bloğu her zaman çalışır. – cspray

İlgili konular