http://suritam9.woweb.net/www/php/zb41/view.php?id=php&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=27
위의 url을 참고
function fof_update_feed($url)
{
global $FOF_FEED_TABLE, $FOF_ITEM_TABLE;
if(!$url) return 0;
$rss = fetch_rss( $url );
if(!$rss)
{
print "Error: <B>" . magpie_error() . "</b> ";
print "<a href="http://feeds.archive.org/validator/check?url=$url">try to validate it?</a> ";
return 0;
}
$title = mysql_escape_string($rss->channel['title']);
$link = $rss->channel['link'];
$description = mysql_escape_string($rss->channel['description']);
$safeurl = mysql_escape_string( $url );
$result = fof_do_query("select id, url from $FOF_FEED_TABLE where url='$safeurl'");
$row = mysql_fetch_array($result);
$feed_id = $row['id'];
$items = $rss->items;
foreach ($items as $item)
{
$link = mysql_escape_string($item['link']);
$title = mysql_escape_string($item['title']);
$content = mysql_escape_string($item['description']);
if($item['content']['encoded'])
{
$content = mysql_escape_string($item['content']['encoded']);
}
if($item['atom_content'])
{
$content = mysql_escape_string($item['atom_content']);
}
$dcdate = mysql_escape_string($item['point']['x']);
$dccreator = mysql_escape_string($item['author']);
$dcsubject = mysql_escape_string($item['address']);
if(!$link)
{
$link = $item['guid'];
}
if(!$title)
{
$title = "[no title]";
}
$result = fof_do_query("select id from $FOF_ITEM_TABLE where feed_id='$feed_id' and link='$link'");
$row = mysql_fetch_array($result);
$id = $row['id'];
if(mysql_num_rows($result) == 0)
{
$n++;
$sql = "insert into $FOF_ITEM_TABLE (feed_id,link,title,content,dcdate,dccreator,dcsubject) values ('$feed_id','$link','$title','$content','$dcdate','$dccreator','$dcsubject')";
$result = fof_do_query($sql);
}
else
{
$ids[] = $id;
}
}
if(defined('FOF_KEEP_DAYS'))
{
$keep_days = FOF_KEEP_DAYS;
if(count($ids) != 0)
{
$first = 1;
foreach ($ids as $id)
{
if($first)
{
$stat = "($id";
$first = 0;
}
else
{
$stat .= ", $id";
}
}
$stat .= ")";
$sql = "delete from $FOF_ITEM_TABLE where feed_id = $feed_id and `read`=1 and id not in $stat and to_days( CURDATE( ) ) - to_days( timestamp ) > $keep_days";
fof_do_query($sql);
}
}
return $n;
}
댓글 달기