通过标记名称获取多个元素并在回显它的循环中检查元素标记

Dav*_*vid 6 php dom

这是有效的代码示例

$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
Run Code Online (Sandbox Code Playgroud)

$imgs$doc带有标签名称的元素中取出img然后我做一些操作.

现在我想getElementsByTagName> img或iframe,然后使用$ img检查哪个元素是这个,如果它是iframe或img则回显.

如果可能,请修改我的代码.

Jan*_*enk 13

您可以在DOMDocument上使用XPath,如下所示:

$doc->loadHTML($article_header);
$xpath = new DOMXpath($doc);

$imagesAndIframes = $xpath->query('//img | //iframe');

$length = $imagesAndIframes->length;
for ($i = 0; $i < $length; $i++) {
    $element = $imagesAndIframes->item($i);

    if ($element->tagName == 'img') {
        echo 'img';
    } else {
        echo 'iframe';
    }
}
Run Code Online (Sandbox Code Playgroud)