PHP DOMNode::hasAttributes проверяет сбой
Я использую PHP DOMNode hasAttributes, чтобы получить все атрибуты элементов. Пока все работает отлично. Мой код ниже. Тем не менее, эта линия else if($imageTags->hasAttributes() == false) is where I can't get it to work
, он отображает ошибку на моей странице, вместо этого перенаправляя пользователя на индекс php, когда код не работает. Что я действительно хочу, это если ($imageTags->hasAttributes() == true)
не равно TRUE. Перенаправьте пользователя на index.php и не отображайте ошибки вместо этого.
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>');
Примечание: если вы удалите '<iframe'
теги на строку. Вы получите ошибку
2 ответа
...
} else if($imageTags->hasAttributes() == false){
header("Location: index.php");
die; // needed here to prevent code below, if any from executing
}
...
также в примечании о редактировании об удалении iframe и получении ошибки, необходимо проверить, $doc->getElementsByTagName('iframe')
фактически захватил что-нибудь, пример:
$imageTags = $doc->getElementsByTagName('iframe')
if ($imageTags->length > 0) {
$imageTags = $imageTags->item(0);
...
Вместо того, чтобы использовать $imageTags->hasAttributes()
Я решил это с помощью $imageTags instanceof DOMNode