【问题标题】:Some issues with the storing of rss feeds in the mysql database在 mysql 数据库中存储 rss 提要的一些问题
【发布时间】:2014-03-27 23:18:07
【问题描述】:

到目前为止,我或多或少地通过以下代码(rss storer.php)将来自不同网站的 rss 提要(基于 xml 的文档)解析到我的 MySQL 数据库中:

    <?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);
?>

因此,当我将此脚本作为测试驱动时,它会显示来自 4 个链接的 rss 提要,而且我还看到它响应了我服务器上的数据库,因为已将文件插入到 mysql 表中。

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

1:当我查看数据库中的 mysql 表“rss_feeds”时,我看到很多奇怪的字母似乎已经取代了瑞典字母“Å”、“Ä”和“Ö”,我假设它可能与 mysql 表中的行上的字符集有关。数据库本身。但是如果是这样,那我该如何改变它来解决这个问题呢?

2:虽然 MySQL 数据库“存储”响应“rss storer.php”中的 PHP 代码,但由于数据库和 PHP 文件相互连接,我还没有看到插入新的 RSS 提要。我应该在“rss storer.php”中添加另一个 PHP 代码还是我应该怎么做才能将绝对最新的 RSS 提要插入数据库?

3:数据库中RSS提要的ID都显示为0。如何使它们唯一,会说每个RSS提要都有不同的ID?

4:当我在数据库“storage”上的“rss_feeds”表中查看 RSS 提要的发布日期时,它们都显示“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

提前致谢!

【问题讨论】:

  • 1) 检查数据库连接的编码。我不认为它是 UTF-8。
  • 当我在测试服务器上驱动 PHP 脚本时,它会显示正确的字母而不是奇怪的字母。但最大的问题是 RSS 提要何时被存储。当我再次检查放置在数据库“存储”上的 mysql 表时,出现了奇怪的怪异字母而不是真正的瑞典字母(Å、Ä、Ö)。

标签: php mysql sql xml rss


【解决方案1】:

使用此功能

$feed->set_output_encoding('ISO-8859-1');

这将确保 RSS 提要的输出与 MySQL 编码匹配。否则你会得到像â€这样的字符。 来源:http://samueljcarlson.blogspot.in/2011/12/rss-feeds-to-mysql-database-script.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2012-01-30
    • 2012-07-14
    • 2015-05-18
    • 1970-01-01
    相关资源
    最近更新 更多