在 php simplepie rss 中获取图像的条件循环

conditional loop to fetch images in php simplepie rss

我正在尝试在 PHP 中使用 SimplePie 制作新闻 reader。当我尝试从提要中获取图像时,一切正常。以我的一点理解,我得出的结论是我必须通过以下三种方式中的任何一种来获取图像。

1) 使用 $item->get_enclosure() 和以下代码获取图像:

<?php

    //Find Images from $item->get_enclosure()
    if ($enclosure = $item->get_enclosure()){
        $imageLink = $enclosure->get_link();
        if($imageLink !== "//?#") {
            echo "<a href=\"" . $item->get_permalink() . "\"><img src=\"$imageLink\"></a>";
            $imageLink = null;
        }
    }

?>

2) 如果没有图像,那么我必须使用 $item->get_content() 和以下代码来获取:

    // Search for Images in $item->get_content() using str_img_src()
    if ($iurl = str_img_src($item->get_content())) {
        echo "<a href=\"" . $item->get_permalink() . "\"><img src=\"$iurl\"></a>";              
    }

?>

3) 如果我也失败了,我应该从 post 永久链接中获取如下:

<?php
    if ($imageLink === "//?#" && !$iurl) {
        // echo "Mandan<br>";
        $html = file_get_contents($item->get_permalink());

        $doc = new DOMDocument();
        @$doc->loadHTML($html);

        $tags = $doc->getElementsByTagName('img');

        foreach ($tags as $tag) {
                $imgUrl = "http://" . $tag->getAttribute('src');
                echo "<div style=\"float: left;\"></div><a href=\"" . $imgUrl . "\"><img src=\"" . $imgUrl . "\"></a><br>";
        }
    }
?>

我的问题是我不知道如何仅通过一种方法获取图像。如果我在第一个方法中成功了,那么我应该跳过第二个和第三个。如果首先失败,则应检查是否可能使用第二种方法,如果成功,我的程序应跳过第三种方法。最后,如果第 1 和第 2 次失败,它应该使用第 3 种方法获取图像。

我尝试了 ififelse 循环,但没有成功。我怎样才能创建一个循环来执行此操作而不破坏其他人?

抱歉我的问题很长。不知道如何让它变短。

正如@devon 所说,我尝试使用 else if,它完成了我的工作。我没有在单独的 if 循环中检查每个图像的可用性,而是遍历了 if elseif 循环。因此只生成一个结果,如果检索到任何图像,则循环停止并跳出