2014-10-24 7 views
1

Я создаю агрегатор RSS и пытаюсь обрабатывать изображения из широкого спектра источников.Как получить изображение корпуса атома с помощью Simple Pie

Большинство моих источников используют изображения в контенте или медиа: RSS-приложения.

мне удалось получить простой пирог подобрать корпуса для СМИ: RSS

, а также полосы изображения от содержания в RSS сообщении.

Но питается от CMS под названием Silver Stripe имеет встроенный образ в каждом посте с стилем атома

нотации, что я не могу получить простой пирог читать и извлекать изображения из.

<link rel="enclosure" type="image/JPG" href="http://example.com/image.jpg" /> 

Нужно ли мне изменить класс корпуса, чтобы получить эту работу, или я что-то отсутствует, это

что-то делать с пространствами имен я использую?

Here is one of the feeds I am trying to get

я доступ около 7 других различных сайтов SilverStipe, все они включают в себя одни и те же изображения, ссылки ...

Вот мой текущий сценарий изображения:

if ($enclosures = $prPost->get_enclosures()) 
    { 
     foreach ($enclosures as $enclosure) 
     { 
      $this->Fields['image'] = $enclosure->get_link(); 
     } 
    } 

    if (preg_match('/<img.+?src="(.+?)"/', $this->Fields['desc'], $matches) && strlen($this->Fields['image']) < 5) { 
     $this->Fields['image'] = $matches[1]; 
     $this->Fields['desc'] = preg_replace('/<img(.*)>/i' , "" , $this->Fields['desc'], 1); 
    } 
+0

Вы смотрели на решения, такие как [Superfeedr] (https://superfeedr.com), который нормализует все ссылки и изображения, будь то RSS или Atom Записи в? –

ответ

0

Эти link Элементы являются дочерними элементами элементов item:

<rss> 
    <channel> 
    ... 
    <item> 
     ... 
     <description>...</description> 
     <link rel="enclosure" ... /> 

Вы можете использовать get_item_tags для получения определенных элементов от item.

Они должны быть в пространстве имен Atom (<atom:link>), но вместо этого остается в пространстве имен по умолчанию (<link>), которая является ошибкой в ​​корме. но один вы должны будете работать вокруг:

$links = $item->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'); 
+0

Фантастический! Спасибо, Джо! Это именно то, что мне нужно! Я использовал цикл foreach для извлечения последней ссылки и $ item ['attribs'] [SIMPLEPIE_NAMESPACE_RSS_20] ['href']; получил URL-адрес изображения для неверно сформированных фишек в silverstripes. –

 Смежные вопросы

  • Нет связанных вопросов^_^