Я не вижу URL-адрес изображения в описании канала. Таким образом, нет изображения с широким диапазоном каналов.
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Amazon.co.uk: Bestsellers in Electronics > Camera & Photo</title>
<link>http://www.amazon.co.uk/Best-Sellers-Electronics-Camera-Photo/zgbs/electronics/560834/ref=pd_zg_rss_ts_ce_560834_c</link>
<description><![CDATA[The most popular items in Camera & Photo (Updated hourly). Note: Product prices and availability were accurate at the time this feed was generated but are subject to change.]]></description>
<pubDate>Tue, 30 Dec 2014 04:54:42 GMT</pubDate>
<lastBuildDate>Tue, 30 Dec 2014 04:54:42 GMT</lastBuildDate>
<ttl>60</ttl>
<generator>Amazon Community RSS 2.0</generator>
<language>en-gb</language>
<copyright>Copyright 2014, Amazon.com</copyright>
<item>
...snip...
</item>
</channel>
</rss>
Теперь, следующий первый пункт в то время я принес копию RSS:
<item>
<title>#1: Samsung UHS-I CLASS 10 32GB SD Micro Card with Adapter</title>
<guid isPermaLink="false">top-sellers_electronics_560834_B00J29BR3Y</guid>
<link>http://www.amazon.co.uk/Samsung-UHS-I-CLASS-Micro-Adapter/dp/B00J29BR3Y/ref=pd_zg_rss_ts_ce_560834_1</link>
<pubDate>Tue, 30 Dec 2014 04:54:42 GMT</pubDate>
<description><![CDATA[<div style="float:left;">
<a class="url" href="http://www.amazon.co.uk/Samsung-UHS-I-CLASS-Micro-Adapter/dp/B00J29BR3Y/ref=pd_zg_rss_ts_ce_560834_1"><img src="http://ecx.images-amazon.com/images/I/41PsVtmh0KL._SL160_.jpg" alt="Samsung UHSI" border="0" hspace="0" vspace="0" /></a>
</div><span class="riRssTitle">
<a href="http://www.amazon.co.uk/Samsung-UHS-I-CLASS-Micro-Adapter/dp/B00J29BR3Y/ref=pd_zg_rss_ts_ce_560834_1">Samsung UHS-I CLASS 10 32GB SD Micro Card with Adapter</a>
</span> <br /><span class="riRssContributor">by Samsung</span> <br />
<img src="http://g-ecx.images-amazon.com/images/G/02/x-locale/common/icons/uparrow_green_trans._V192561975_.gif" width="13" align="abstop" alt="Ranking has gone up in the past 24 hours" title="Ranking has gone up in the past 24 hours" height="11" border="0" />
<font color="green"><strong></strong></font> 183 days in the top 100 <br />
<img src="http://g-ecx.images-amazon.com/images/G/02/detail/stars-4-5._V192253866_.gif" width="64" height="12" border="0" style="margin: 0; padding: 0;"/>(1432)
<br /><br /><a href="http://www.amazon.co.uk/Samsung-UHS-I-CLASS-Micro-Adapter/dp/B00J29BR3Y/ref=pd_zg_rss_ts_ce_560834_1">Buy new:
</a> <strike>£24.99</strike> <font color="#990000"><b>£13.72</b></font>
<br /><a href="http://www.amazon.co.uk/gp/offer-listing/B00J29BR3Y/ref=pd_zg_rss_ts_ce_560834_1">26 used & new</a>
from <span class="price">£9.15</span><br /><br />(Visit the
<a href="http://www.amazon.co.uk/Best-Sellers-Electronics-Camera-Photo/zgbs/electronics/560834/ref=pd_zg_rss_ts_ce_560834_1">Bestsellers in Camera & Photo</a>
list for authoritative information on this product's current rank.)]]>
</description>
</item>
И снова, без изображения в формате RSS. Однако вы можете видеть изображения в описании. Это означает, что отображение описания будет включать изображение (в этом случае несколько несколько).
Если вы действительно хотите получить только и только изображение, вы можете проанализировать HTML-описание и найти теги <img>
и выбрать тот, который имеет справедливый размер для вашей последней страницы. Похоже, что это вы пытаетесь сделать уже ...
Однако, ваш код, кажется, ожидать, что описание будет разобран вызова в XML-парсер:
$rss = simplexml_load_string($rss);
не так, потому что это определяемый внутри CDATA, что означает, что он выглядит как один большой фрагмент текста в синтаксический анализатор XML (что является правильным способом делать это здесь).
Таким образом, вам нужно извлечь описание, проанализировать его отдельно, а затем выполнить поиск тега img внутри этого документа под-xml (обратите внимание, что внутри описания он может быть HTML, а не XML, что означает, что он не может компилироваться с XML-парсер, потому что некоторые теги не закрыты для XML. Эта версия кажется, что это XML совместима.)
$description = $rss->channel->item[$i]->description;
$desc_xml = simplexml_load_string($description);
// then you have multiple IMG, I'm not too sure how you get the count, I would imagine like this:
$max = count($desc_xml->img);
for($j = 0; $j < $max; ++$j)
{
$url = $desc_xml->img[$j]->attributes()->src;
...
}
что-то вроде этого.
img-> attributes() -> src не существует в описании. –