2014-03-27 47 views
0

直到现在,我通过以下代码(rss storer.php)将不同网站的rss提要(基于xml的文档)解析到我的MySQL数据库中或多或少成功:在mysql数据库中存储RSS源的一些问题

<?php 
header("Content-Type: text/html;charset=utf-8"); 

$feeds = array(
    'http://fotbollskanalen.se/rss', 
    'http://www.aftonbladet.se/sportbladet/fotboll/rss.xml', 
    'http://www.eurosport.se/fotboll/allsvenskan/rss.xml', 
    'http://expressen.se/rss/fotboll' 
); 

$connect=mysql_connect("localhost","root","") or die("You could not access!"); 
mysql_select_db("storage",$connect); 

if($connect) 
{ 
foreach($feeds as $feed) { 
    $xml = simplexml_load_file($feed); 

    foreach($xml->channel->item as $item) 
    { 
    $date_format = "j-n-Y"; // 7-7-2008 
    echo date($date_format,strtotime($item->pubDate)); 
      echo ' <a href="'.$item->link.'" target="_blank">'.$item->title.'</a>'; 
      echo '<div>' . $item->description . '</div>'; 

    mysql_query("INSERT INTO rss_feeds (id, title, description, link, pubdate) 
    VALUES (
     '', 
     '".mysql_real_escape_string($item->title)."', 
     '".mysql_real_escape_string($item->description=htmlspecialchars(trim($item->description)))."', 
     '".mysql_real_escape_string($item->link)."', 
     '".mysql_real_escape_string($item->pubdate)."')");  
    } 
} 
} 
else 
{echo "An error has occured";} 

mysql_close($connect); 
?> 

因此,它显示了RSS,当我驾驶该脚本的测试,也是我所看到的,它respons到数据库我的服务器上,因为已经插入MySQL的文件从4个链接供稿表。

但现在问题来了。以下是我需要帮助的问题:

1:当我查看数据库上的mysql表“rss_feeds”时,我看到很多奇怪的字母,它们似乎已经替换了瑞典字母“Å “,”Ä“和”Ö“,我假设它可能是mysql表resp中的行上的字符集。数据库本身。但如果是这样,那我该如何改变它来解决这个问题? 2:虽然MySQL数据库对“rss storer.php”中PHP代码的“存储”响应,但是我没有看到新的RSS提要因为数据库和PHP文件彼此连接而被插入。我应该在“rss storer.php”中添加另一个PHP代码,或者我该怎么做,绝对最新的RSS提要被插入到数据库中?

3:当谈到数据库上RSS源的ID时,它们都显示为0.我如何让它们独一无二,它会说每个RSS源具有不同的ID?

当我在数据库“storage”的表“rss_feeds”中查看RSS feed的发布日期时,它们都显示“0000-00-00 00:00:00”。为什么这样?以下代码位于数据库中的pubdate行之前:

5  pubdate timestamp on update CURRENT_TIMESTAMP Null: No CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 

5:这是最后一个问题,但可能是最重要的。我想在数据库“storage”的mysql表“rss_feeds”中设置一个关于插入rss提要的最大值的限制,这样rss提要不会过多地构成威胁整个本地服务器,如果你了解我的意思。我应该添加一些SQL代码来决定限制还是应该怎么做?

如果您需要一些额外的必要信息来帮助解决这些问题,那么我会按照您的意愿向您提供更多信息。

我希望所有那些最好的问候,谁可以帮助我通过所有这些问题:d提前

谢谢!

+0

1)检查DATABASE CONNECTION的编码。我不认为这是UTF-8。 – ThW

+0

当我在测试服务器上驱动PHP脚本时,它显示正确的字母而不是奇怪的字母。但最大的问题是当RSS源被储存时。当我再次检查放置在数据库“storage”上的mysql表时,那么会出现奇怪的奇怪字母,而不是真正的瑞典字母(Å,Ä,Ö)。 – user2566415

回答