условный цикл для извлечения изображений в php simplepie rss - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать программу чтения новостей, используя SimplePie в PHP.Все работало нормально, когда я пытался получить изображения из каналов.В моем маленьком понимании я пришел к выводу, что мне нужно получать изображения любым из следующих трех способов.

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) если мне тоже это не удалось, я должен получить из пост постоянную ссылку какследует:

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

Моя проблема заключается в том, что я не знаю, как получить изображение только одним методом.если я преуспел в первом методе, то я должен пропустить 2-й и 3-й.если сначала произошел сбой, то следует проверить, если это возможно, 2-м методом, и если это успешно, моя программа должна пропустить 3-й метод.и, наконец, если 1-й и 2-й сбой, он должен получить изображения по 3-му методу.

Я пробовал с if и ifelse циклами и не удалось.Как я могу создать цикл, чтобы сделать это, не нарушая других?

Извините за мой долго разработанный вопрос.не знаю, как сделать это коротким.

1 Ответ

0 голосов
/ 13 ноября 2018

Как сказал @devon, я пытался с другими, если и это сделало мою работу.Вместо проверки доступности каждого изображения в отдельных циклах if, я перебрал циклы if ifif.Таким образом, генерируется только один результат, и если получено какое-либо изображение, цикл останавливается и прерывается

...