I am using PHP DOMNode hasAttributes to retrieve all of the elements' attributes. So far, everything is working great. My code is below. However, this line else if($imageTags->hasAttributes() == false) is where I can't get it to work
, it displays error on my page instead redirecting the user to index php when code failed to work. What I really want is if ($imageTags->hasAttributes() == true)
does not equal TRUE. Redirect the user to index.php and don't display the errors instead.
function get_iframe_attr($string){
$doc = new DOMDocument();
$doc->loadHTML("$string");
$imageTags = $doc->getElementsByTagName('iframe')->item(0);
if ($imageTags->hasAttributes() == true) {
foreach ($imageTags->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$attr_val[] = "$name=\"$value\" ";
}
echo $implode_str = implode(" ", $attr_val);
}else if($imageTags->hasAttributes() == false){
header("Location: index.php");
}
}
get_iframe_attr('<iframe src="" scrolling="no" width="600" height="438" marginheight="0" marginwidth="0" frameborder="0"></iframe>');
Note: if you remove the '<iframe'
tags on the string. You will get the error
...
} else if($imageTags->hasAttributes() == false){
header("Location: index.php");
die; // needed here to prevent code below, if any from executing
}
...
also on your edit note about removing iframe and getting error, you need to check if $doc->getElementsByTagName('iframe')
has actually grabbed anything, example:
$imageTags = $doc->getElementsByTagName('iframe')
if ($imageTags->length > 0) {
$imageTags = $imageTags->item(0);
...