Я пытаюсь создать программу чтения новостей, используя 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
циклами и не удалось.Как я могу создать цикл, чтобы сделать это, не нарушая других?
Извините за мой долго разработанный вопрос.не знаю, как сделать это коротким.