DOMElement::removeAttribute()
(PHP 5, PHP 7)
Removes attribute
说明
public DOMElement::removeAttribute(string $name): bool
Removes attribute named$namefrom the element.
参数
- $name
The name of the attribute.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
错误/异常
DOM_NO_MODIFICATION_ALLOWED_ERR
Raised if the node is readonly.
参见
- DOMElement::hasAttribute() Checks to see if attribute exists
- DOMElement::getAttribute() Returns value of attribute
- DOMElement::setAttribute() Adds new attribute
<?php /*When I try to get a some attribute from not validated HTML or XML document, PHP dies with no errors in logs or output: */ function is_attribute_value($obj,$type,$value) { $_ret=false; if($obj) { if($val=$obj->getAttribute($type)) { if($val==$value) { $_ret=true; } } } return $_ret; } //And this check helped to me: function is_attribute_value($obj,$type,$value) { $_ret=false; if($obj->attributes) { if($val=$obj->getAttribute($type)) { if($val==$value) { $_ret=true; } } } return $_ret; } ?>
<?php //Store your html into $html variable. $html="<html> <head> <title>Rakesh Verma</title> </head> <body> <a href='http://example.com'>Example</a> <a href='http://google.com'>Google</a> <a href='http://www.yahoo.com'>Yahoo</a> </body> </html>"; $dom = new DOMDocument(); $dom->loadHTML($html); //Evaluate Anchor tag in HTML $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a"); for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); //remove and set target attribute $href->removeAttribute('target'); $href->setAttribute("target", "_blank"); $newURL=$url.".au"; //remove and set href attribute $href->removeAttribute('href'); $href->setAttribute("href", $newURL); } // save html $html=$dom->saveHTML(); echo $html; ?>