Ошибка PHP SimplePie: $ item-> get_enclosure () всегда возвращает true - PullRequest
0 голосов
/ 06 июня 2018

Пытаюсь создать программу чтения новостей, используя php SimplePie Library.Когда я пытаюсь получить изображение из канала, используя код

if ($enclosure = $item->get_enclosure()){
    $imageLink = $enclosure->get_link(); 
    echo "<img src=\"$imageLink\">";
}

Когда я выбираю канал из RSS-канала, который не имеет вложенного файла, он отображает тег изображения с источником следующим образом.

src="//?#"

Приведенный выше код работает нормально с каналами, которые имеют вложения.

Я также пытался с кодом:

if ($enclosure = $item->get_enclosure()){
    if($imageLink = $enclosure->get_link()){
        echo "<img src=\"$imageLink\">";
    }
}

Может кто-нибудь сказать мне, что я делаю неправильно в этих кодах?

Ответы [ 2 ]

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

Проверьте, присваивается ли $ imageLink значение где-либо в вашем коде.Скорее всего, это может быть ошибкой.Используйте print_r или var_dump на каждом шаге вашего кода, чтобы точно определить, где именно вы кодируете, присваивая это значение ранее упомянутой переменной

0 голосов
/ 06 июня 2018

Похоже, значение $ imageLink равно //? #, Так что если вы сделаете

if($imageLink = $enclosure->get_link())

Результат верен ...

проверьте точное значение, если нет вложения,а затем измените условие ... IE

$imageLink = $enclosure->get_link();
if($imageLink !== "//?#") {

Вы можете проверить точное значение, используя

if ($enclosure = $item->get_enclosure()){
    $imageLink = $enclosure->get_link(); 
    var_dump($imageLink);
}
...