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

问题描述 投票:1回答:1

我正在尝试使用PHP中的SimplePie制作新闻阅读器。当我尝试从Feed中获取图像时,一切正常。在我的理解中,我得出的结论是,我必须以下列三种方式获取图像。

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 postinkink取得如下:

<?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>";
        }
    }
?>

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

我尝试使用ififelse循环并没有成功。我怎样才能创建一个循环来做到这一点而不打破其他人?

对不起我的详细问题。不知如何做空。

php loops conditional simplepie
1个回答
1
投票

就像@devon所说的那样,如果我做了我的工作,我会尝试其他的。我没有在单独的if循环中检查每个图像的可用性,而是循环if ifif循环。因此,只生成一个结果,如果检索到任何图像,则循环停止并中断

© www.soinside.com 2019 - 2024. All rights reserved.