Пробвай този код. Може да се наложи да пипнеш тук-там, но като цяло това е идеята. Ползвам го за новини от сайта на bTV. Може да го видиш на адрес http://geobg.info/index.php?a=1&p=5
Структура на таблицата:
CREATE TABLE `your_db_name`.`table_news` ( `lnk_id` bigint( 20 ) unsigned NOT NULL auto_increment ,
`lnk_code` tinyint( 4 ) NOT NULL default '0',
`lnk_label` varchar( 255 ) character set utf8 collate utf8_bin NOT NULL ,
`lnk_body` text character set utf8 collate utf8_bin NOT NULL ,
`lnk_desc` text character set utf8 collate utf8_bin NOT NULL ,
`lnk_icon` varchar( 255 ) NOT NULL ,
`lnk_url` varchar( 255 ) NOT NULL ,
`lnk_date` datetime NOT NULL ,
`lnk_key` varchar( 255 ) NOT NULL ,
PRIMARY KEY ( `lnk_id` ) ) ENGINE = MyISAM DEFAULT CHARSET = cp1251;
------------------------------------------
<?php
define("DB_NEWS", "`your_db_name`.`table_news`");
function FeedRSS($SourceURL = "")
{
$xmlStr = file_get_contents($SourceURL);
$t = explode("<item>", $xmlStr);
unset($t[0]);
$count = count($t);
for ($i = 1; $i <= $count; $i++)
{
$item_data = array();
$items = str_replace("</item>", "", $t[$i]);
$z = preg_match_all('/(<enclosure url=\")(.+)(\" type=\"image\/jpeg\" \/>)/', $items, $data);
$item_data['pic'] = htmlspecialchars(trim($data[2][0]));
$z = preg_match_all('/(<img>)(.+)(<\/img>)/', $items, $data);
$item_data['img'] = htmlspecialchars(trim($data[2][0]));
$z = preg_match_all('/(<title>)(.+)(<\/title>)/', $items, $data);
$item_data['title'] = htmlspecialchars(trim($data[2][0]));
$z = preg_match_all('/(<body>)(.+)(<\/body>)/', $items, $data);
$item_data['body'] = htmlspecialchars(trim($data[2][0]));
$z = preg_match_all('/(<link>)(.+)(<\/link>)/', $items, $data);
$item_data['link'] = htmlspecialchars(trim($data[2][0]));
$z = preg_match_all('/(<description>)(.+)(<\/description>)/', $items, $data);
$item_data['description'] = htmlspecialchars(trim($data[2][0]));
$z = preg_match_all('/(<pubDate>)(.+)(<\/pubDate>)/', $items, $data);
$item_data['pubDate'] = htmlspecialchars(trim($data[2][0]));
$item_data['date'] = date("Y-m-d h-m-s", strtotime($data[2][0]));
$z = preg_match_all('/(<guid isPermaLink=\"false\">)(.+)(<\/guid>)/', $items, $data);
$item_data['guid'] = htmlspecialchars(trim($data[2][0]));
$R1 = mysql_query("SELECT `lnk_id` FROM " . DB_NEWS . " WHERE `lnk_key`='{$item_data['guid']}' LIMIT 1");
if (mysql_num_rows($R1) == 0)
{
$item_data['title'] = str_ireplace(""",""",$item_data['title']);
$item_data['body'] = str_ireplace(""",""",$item_data['body']);
$item_data['description'] = str_ireplace(""",""",$item_data['description']);
$sql = "INSERT INTO " . DB_NEWS .
" (`lnk_key`,`lnk_label`,`lnk_body`,`lnk_desc`, `lnk_icon`, `lnk_url`, `lnk_date`) VALUES ('{$item_data['guid']}', '{$item_data['title']}', '{$item_data['body']}', '{$item_data['description']}', '{$item_data['pic']}', '{$item_data['link']}', '{$item_data['date']}')";
$R1 = mysql_query($sql);
}
}
}
?>