【发布时间】: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 表时,出现了奇怪的怪异字母而不是真正的瑞典字母(Å、Ä、Ö)。