【问题标题】:conditional loop to fetch images in php simplepie rss在 php simplepie rss 中获取图像的条件循环
【发布时间】:2018-06-07 13:18:48
【问题描述】:

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

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-&gt;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)如果我也失败了,我应该从帖子永久链接中获取如下:

<?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 循环但没有成功。如何在不破坏其他人的情况下创建一个循环来执行此操作?

抱歉,我提出了冗长的问题。不知道如何缩短。

【问题讨论】:

  • 它们都在同一个文件中吗?如果是这样,您应该在最后两个条件上使用 else if 而不是 if。
  • 是的。仅在同一文件中。会尝试其他如果并且会更新

标签: php loops conditional simplepie


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多