Если вы хотите получить изображение поста, мы можем сделать это - при условии, что в содержании / теле поста есть изображение. Вот что я бы сделал.
Я создал пакет для упрощения анализа XML. Вы можете найти его здесь: https://github.com/mtownsend5512/xml-to-array
Затем выполните следующее:
$xml = \Mtownsend\XmlToArray\XmlToArray::convert(file_get_contents('https://www.yourrssfeed.com'));
Теперь у вас есть хороший массив php-канала rss.
Далее мы создадим вспомогательную функцию для получения первого изображения из тела поста. Мы будем использовать это как избранное изображение поста.
function getPostImage($content)
{
$output = preg_match_all('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]*>/i', $content, $matches);
if (empty($matches[1][0])) {
return 'http://yoursite.com/images/fallback-image.jpg';
}
return $matches[1][0];
}
Вы захотите заменить http://yoursite.com/images/fallback-image.jpg
URL-адресом вашего резервного изображения, если в сообщении нет изображения.
Теперь мы перебираем сообщения:
foreach ($xml['channel']['item'] as $post) {
$title = $post['title']);
$link = $post['link'];
$description = $post['description'];
$pubDate = $post['pubDate'];
$image = getPostImage($post["content:encoded"]);
}
Надеюсь, это поможет.