СМС-ки
   
Пейджер выключен!

  Ответ в Rss reader
Информация о Госте
Введите Ваше имя
Кнопки кодов
 Расширенный режим
 Нормальный режим
Введите сообщение
Смайлики
smilie  smilie  smilie 
smilie  smilie  smilie 
smilie  smilie  smilie 
smilie  smilie  smilie 
smilie  smilie  smilie 
     
Показать всё


Расширенный редактор
Опции сообщения  Включить смайлики?
 Включить подпись?
Иконки сообщения                                 
                                
  [ Use None ]
 



Последние 10 сообщений [ в обратном порядке ]
mrjoeys Дата 20.10.2010 - 07:40
  Ребят, доброго времени суток!

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

обшарил весь инет в поисках скрипта подходящего перевода 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;
}
}
}

}

?>