читать изображения из RSS-ленты - PullRequest
0 голосов
/ 07 декабря 2011

Я читаю и сохраняю данные фида rss xml в своей базе данных с URL-адресами изображений и изображениями и показываю их в URL-адресе своего сайта. Для этого я создал функцию и она работает хорошо. но в данных rss я нашел одно и то же изображение под другим именем и другого размера. как

      <item>
        <media:thumbnail url="http://a.abcnews.com/images/Entertainment/ap_tiger_woods_jp_111205_mn.jpg" width="320" height="240" credit="Danny Moloshok/AP Photo"/>
        <media:thumbnail url="http://a.abcnews.com/images/Entertainment/ap_tiger_woods_jp_111205_mc.jpg" width="100" height="75" credit="Danny Moloshok/AP Photo"/>
        <media:thumbnail url="http://a.abcnews.com/images/Entertainment/ap_tiger_woods_jp_111205_mv.jpg" width="264" height="198" credit="Danny Moloshok/AP Photo"/>
        <media:thumbnail url="http://a.abcnews.com/images/Entertainment/ap_tiger_woods_jp_111205_wl.jpg" width="200" height="112" credit="Danny Moloshok/AP Photo"/>
        <media:thumbnail url="http://a.abcnews.com/images/Entertainment/ap_tiger_woods_jp_111205_main.jpg" width="413" height="310" credit="Danny Moloshok/AP Photo"/>
        <media:thumbnail url="http://a.abcnews.com/images/Entertainment/ap_tiger_woods_jp_111205_wmain.jpg" width="640" height="360" credit="Danny Moloshok/AP Photo"/>
       <media:keywords>1</media:keywords>
        <title><![CDATA[Change of Plans: Romney Revamps as Gingrich Closes]]></title>
        <link><![CDATA[http://feeds.abcnews.com/click.phdo?i=b21d3190f683c1e9dd83653255d5e446]]></link>
     </item>
        <item>
        <media:thumbnail url="http://a.abcnews.com/images/International/abc_rq170_unmanned_drone_ll_111205_mn.jpg" width="320" height="240" credit="ABC News"/>
        <media:thumbnail url="http://a.abcnews.com/images/International/abc_rq170_unmanned_drone_ll_111205_mc.jpg" width="100" height="75" credit="ABC News"/>
        <media:thumbnail url="http://a.abcnews.com/images/International/abc_rq170_unmanned_drone_ll_111205_mv.jpg" width="264" height="198" credit="ABC News"/>
        <media:thumbnail url="http://a.abcnews.com/images/International/abc_rq170_unmanned_drone_ll_111205_wl.jpg" width="200" height="112" credit="ABC News"/>
        <media:thumbnail url="http://a.abcnews.com/images/International/abc_rq170_unmanned_drone_ll_111205_main.jpg" width="413" height="310" credit="ABC News"/>
        <media:thumbnail url="http://a.abcnews.com/images/International/abc_rq170_unmanned_drone_ll_111205_wmain.jpg" width="640" height="360" credit="ABC News"/>
        <media:keywords>5</media:keywords>
        <title><![CDATA[Iran Missing Drone Was on CIA Mission]]></title>
        <link><![CDATA[http://feeds.abcnews.com/click.phdo?i=42a589abb9eb7a87c2dcaeaaeeb2e383]]></link>

и более ...........

это все одинаковые изображения в одном блоке с разными размерами.

и моя функция была для получения изображения:

   public  function getNytimes($site_config = array()){
       $xmlContent = self::checkXmlValidator($site_config['rss_link']);
       if($xmlContent === false){
           /*update url if getting any error*/
            mysql_query("UPDATE feed_settings SET feed_settings.status = '0', feed_settings.error_log='Time:".date('Y-m-d H:i:s')." Invalid url or resopnse time too more' WHERE feed_settings.rss_link='".$site_config['id']."'");
             return false;
         }
       $xml1 = new SimpleXMLElement($xmlContent);
       $child = $xml1->getDocNamespaces();
       $xml1->registerXPathNamespace('media', $child['media']);
       $image_arr = $xml1->xpath('//media:content');
       $xml = @simplexml_load_string($xmlContent,'SimpleXMLElement', LIBXML_NOCDATA);
       for($counter = 0; $counter < sizeof($image_arr); $counter++){
           $image = null;
            $image =  @$image_arr[$counter]->attributes()->url;
       $sql_query = "INSERT INTO news_feeds SET `image_url` = '".$image."',

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

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Зависит от того, какое изображение вы хотите сохранить.

$image =  @$image_arr[0]->attributes()->url;

Это сохранит изображения с окончанием _mn. Вы удаляете цикл for в конце вашего скрипта.

0 голосов
/ 07 декабря 2011

Если геометрия изображения фиксирована, просто сохраните изображение с указанными атрибутами ширины и высоты.

...