Я создаю PHP-скрипт, который использует много источников RSS. Он помещает RSS-каналы в базу данных.
Существует несколько способов размещения эскиза / изображения в файле XML. У меня проблема с одним конкретным способом.
Когда XML-файл содержит что-то вроде этого: Источник
...
<media:content type="image/jpeg" url="http://static3.hln.be/static/photo/2015/1/8/6/20150405151722/crop_7613016.jpg">
<media:thumbnail url="http://static3.hln.be/static/photo/2015/1/8/6/20150405151722/crop_7613016.jpg"/>
</media:content>
...
По некоторым причинам, похоже, что MagPie не получает этот элемент. Если я var_dump, этот элемент выглядит так:
...
["media"]=> array(1) { ["content"]=> string(1) " " } ["content"]=> string(1) " "...
Кто-нибудь идея, как я могу извлечь элемент миниатюры?
Заранее спасибо.
ОБНОВЛЕНИЕ — (пример кода):
$rss = fetch_rss('http://www.hln.be/rss.xml');
foreach ($rss->items as $item )
{ //loop through rss feed
var_dump($item); //the var_dump without media elements
return $array = $arrayName = array(
'title' => $item['title'],
'url' => $item['link'],
...);
putDataInDatabase(); //put everything in the database
}
Более полный взгляд на var_dump
array(10) { ["title"]=> string(62) "Isinbayeva ..."" ["link"]=> string(23) "http://s.hln.be/2276986" ["description"]=> string(141) "Yelena Isinbayeva ..." ["pubdate"]=> string(29) "Sun, 05 Apr 2015 13:06:00 GMT" ["author"]=> string(8) "redactie" ["guid"]=> string(23) "http://s.hln.be/2276986" ["media"]=> array(1) { ["content"]=> string(1) " " } ["content"]=> string(1) " " ["summary"]=> string(141) "Yelena Isinbayeva wil... " ["date_timestamp"]=> int(1428239160) }
Элементы находятся внутри этого массива, например Вы можете получить доступ к URL-адресу миниатюры контента следующим образом:
$item['media']['content_thumbnail@url']
Чтобы представить это в перспективе вашего примера:
$rss = fetch_rss('http://www.hln.be/rss.xml');
foreach ($rss->items as $item) { //loop through rss feed
var_dump($item['media']['content_thumbnail@url']);
}
Дает следующий вывод:
string(79) "http://static3.hln.be/static/photo/2015/2/10/14/20150405204108/crop_7613834.jpg"string(78) "http://static0.hln.be/static/photo/2015/1/9/13/20150405201321/crop_7613833.jpg"string(77) "http://static2.hln.be/static/photo/2015/7/0/8/20150405203748/crop_7613858.jpg"string(77) "http://static2.hln.be/static/photo/2015/0/6/8/20150405200321/crop_7613813.jpg"string(79) "http://static2.hln.be/static/photo/2015/17/6/10/20150405200509/crop_7613830.jpg"string(77) "http://static1.hln.be/static/photo/2015/7/9/7/20150405195208/crop_7613782.jpg"string(78) "http://static2.hln.be/static/photo/2015/0/15/7/20150405193052/crop_7613737.jpg"...
Это общая структура медиа-элемента:
Array
(
[content#] => 1
[content@] => type,url
[content@type] => image/jpeg
[content@url] => http://static3.hln.be/static/photo/2015/2/10/14/20150405204108/crop_7613834.jpg
[content] =>
[content_thumbnail#] => 1
[content_thumbnail@] => url
[content_thumbnail@url] => http://static3.hln.be/static/photo/2015/2/10/14/20150405204108/crop_7613834.jpg
)
Других решений пока нет …