СМС-ки
   
Пейджер выключен!
  Ответ в темуСоздание новой темыСоздание опроса

> Rss reader, как вывести картинки?
mrjoeys  
[x] Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Ребят, доброго времени суток!

Такая ситуация:

обшарил весь инет в поисках скрипта подходящего перевода rss в виде html. Нашел. Все отлично только вот одна проблемка, как сделать так, чтобы там еще выводилась картинка?

У самого не получается. По следующей причине:
все теги основные, я выдернул по аналогии. А вот как взять атрибут "url" из тега "enclosure", не знаю.
Помогите пожалуйста доработать.

вид моего rss потока такой (пример):

<item>
<title>
Правительством был одобрен законопроект, направленный на улучшение качества работы органов местного самоуправления</title>
<link>
http://gorod73.ru/news/politika/pravitelstvom-uljanovskojj-oblasti-byl-odobren-zakonoproekt-napravlennyjj-na-uluchshenie-kachestva-raboty-organov-mestnogo-samoupravlenija/</link>
<description>
Правительством Ульяновской области был одобрен законопроект, ориентированный на повышение качества работы в органах местного самоуправления. Также документ позволит усовершенствовать осуществляемую в регионе работу по ведению регистра нормативных правовых актов.</description>
<yandex:full-text>
Правительством Ульяновской области был одобрен законопроект, ориентированный на повышение качества работы в органах местного самоуправления. Также документ позволит усовершенствовать осуществляемую в регионе работу по ведению регистра нормативных правовых актов.
Документ был разработан в целях повышения качества реализации переданных государственных полномочий органами местного самоуправления в муниципальных районах. В числе прочих поправок, он предполагает изменение методики вычисления размеров субвенций, которые предоставляются бюджетам муниципальных районов региона на исполнение ими переданных полномочий.
Планируется, что предложенные законопроектом изменения в силу вступят 1 января 2011 года.</yandex:full-text>
<pubDate>
Wed, 20 Oct 2010 07:44:00 +0400</pubDate>
<category>
Политика</category>
<enclosure
url="http://gorod73.ru/upload/information_system_16/3/1/0/item_3109/information_items_3109.jpg" length="18663" type="image/jpeg" />
<guid>
http://gorod73.ru/news/politika/pravitelstvom-uljanovskojj-oblasti-byl-odobren-zakonoproekt-napravlennyjj-na-uluchshenie-kachestva-raboty-organov-mestnogo-samoupravlenija/</guid>
</item>




а вот текст подключаемого скрипта, который непосредственно все обрабатывает RssReader.class.php:

<?
/*
RSS Reader Class 1.0
Gregwiz RSS Reader is a simple RSS integration class
Author: Suppakit Taethaweesap
http://www.gregwiz.com
License: GPL
*/

class RssReader{
var $xml_parser;
var $rss_content;
var $currentTag = '';
var $currentAttribs = '';
var $depth = 0;
var $main;
var $item_counter = 0;
var $cache_dir = 'temp';

function Rss_Reader ($file) {
$this->xml_parser = xml_parser_create();
xml_set_object($this->xml_parser, $this);
xml_set_element_handler($this->xml_parser, startElement, endElement);
xml_set_character_data_handler($this->xml_parser, characterData);
if($this->cache_time > 0) {
$usedcache = false;
$cache_file = $this->cache_dir . '/rsscache_' . md5($file);
if (file_exists($cache_file)) {
$timedif = @(time() - filemtime($cache_file));
if ($timedif < $this->cache_time) {
// cached file is fresh enough, return cached array
$file = $cache_file;
$usedcache = true;
}
}
}

if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}

$read = '';
while ($data = fread($fp, 4096)) {
if (!xml_parse($this->xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($this->xml_parser)),
xml_get_current_line_number($this->xml_parser)));
}
$read .= $data;
}
xml_parser_free($this->xml_parser);
if($this->cache_time > 0) {
if (!$usedcache) {
if (file_exists($cache_file)) { unlink($cache_file); }
$f = @fopen($cache_file, 'w');
fwrite ($f, $read);
fclose($f);
}
}

echo '<UL>';
foreach ($this->rss_content[items] as $content) {
print_r($content);//echo '<LI><a href="'.$content[link].'" target="_blank">'.$content[title].'</a><BR>'.$content[description].'<BR>'.$content[enclosure].'</LI>';
}
echo '</UL>';
}


function startElement($parser, $name, $attrs) {
$name = strtolower($name);
switch($name) {
case "rss":
case "rdf:rdf":
case "items":
$this->currentTag = "";
break;
case "channel":
$this->main = "channel";
break;
case "image":
$this->main = "image";
$this->rss_content["image"] = array();
break;
case "item":
$this->main = "items";
break;
default:
$this->currentTag = $name;
break;
}
}


function endElement($parser, $name) {
$name = strtolower($name);
$this->currentTag = "";
if ($name == "item") {
$this->item_counter++;
}
}


function characterData($parser, $data) {
if ($this->currentTag != "") {
switch($this->main) {
case "channel":
if (isset($this->rss_content[$this->currentTag])) {
$this->rss_content[$this->currentTag] .= $data;
} else {
$this->rss_content[$this->currentTag] = $data;
}
break;
case "image":
if (isset($this->rss_content[$this->main][$this->currentTag])) {
$this->rss_content[$this->main][$this->currentTag] .= $data;
} else {
$this->rss_content[$this->main][$this->currentTag] = $data;
}
break;
case "items":
if (isset($this->rss_content[$this->main][$this->item_counter][$this->currentTag])) {
$this->rss_content[$this->main][$this->item_counter][$this->currentTag] .= $data;
} else {
$this->rss_content[$this->main][$this->item_counter][$this->currentTag] = $data;
}
break;
}
}
}

}

?>
Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
Опции темы Ответ в темуСоздание новой темыСоздание опроса