<?php
/**********************************************************
* Parse XML data into an array structure *
* Usage: array parse_rss ( string data ) *
**********************************************************/
function parse_rss($reg_exp, $xml_data) {
preg_match_all($reg_exp, $xml_data, $temp);
return array(
'count'=>count($temp[0]),
'title'=>$temp[1],
'link'=>$temp[2],
'desc'=>$temp[3],
'pubdate'=>$temp[4] //добавлено
);
}
/**********************************************************
* Parse Array data into an HTML structure *
* Usage: string parse_rss ( array data ) *
**********************************************************/
function output_rss($pattern, $rss_data) {
$temp = "";
for($i=0; $i<$rss_data['count']; $i++) {
$temp .= sprintf($pattern,
$rss_data['link'][$i],
html_entity_decode($rss_data['title'][$i]),
html_entity_decode($rss_data['desc'][$i]),
$rss_data['pubdate'][$i] //добавлено
);
}
return $temp;
}
/**********************************************************
* Settings *
**********************************************************/
$url = 'http://mxworld.ru/data/rss/82/';
$reg_exp = '#<item>.*?<title>(.*?)<\/title>.*?';
$reg_exp .='<link>(.*?)<\/link>.*?<description>';
$reg_exp .='(.*?)<\/description>.*?<pubDate>'; //исправлено
$reg_exp .= '(.*?)<\/pubDate>.*?<\/item>#si'; //добавлено
$pattern = '<a href="%s">%s</a><br>%s<br>Date: %s<hr>';
/**********************************************************
* Main script *
**********************************************************/
if ( $xml_data = file_get_contents($url) ) {
$rss_data = parse_rss($reg_exp, $xml_data);
echo output_rss($pattern, $rss_data);
}
/**********************************************************
* The END *
**********************************************************/
?>
Спустя 8 часов, 1 минута, 38 секунд (13.08.2010 - 07:41) linker написал(а):
Для таких вещей есть SimpleXML или мой любимый DOM (тут).
$var = str_replace('rss_site.ru', 'my_site.ru', $var);
Спустя 16 часов, 1 минута, 54 секунды (13.08.2010 - 23:43) DontShooot написал(а):
Спасибо, работает