我做了这样的功能:
function getFeed($feed_url) {
$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);
echo "<h3>".$x->channel->title."</h3><div>";
foreach ($x->channel->item as $entry) {
$title = utf8_decode(stripslashes(mysql_real_escape_string($entry->title)));
$link = utf8_decode(stripslashes(mysql_real_escape_string($entry->link)));
$desc = utf8_decode(stripslashes(mysql_real_escape_string($entry->description)));
$chkexist="SELECT * FROM articles WHERE title='$title' LIMIT 1";
$i =1;
$chkresult=mysql_query($chkexist);
$countresult=mysql_num_rows($chkresult);
if ($title=="") {
echo "No article title, skipping ".$i++."<br>";
}else{
if ($countresult==1) {
echo "The article: ".utf8_encode($title)." Exists. Passing.<br>";
}else {
$sql="INSERT INTO articles (title,link,description,date) VALUES ('$title','$link','$desc',NOW())";
mysql_query($sql) or die("Failed to save articles");
echo "The article: ".utf8_encode($title)." Is saved<br>";
}
}
}
echo "</div>";
}
这可能不是完美的,我对这个游戏很新,但是当我尝试给它举例时这个Feed:http://www.tek.no/feeds/general.xml它最终会保存而不是所有项目并且最终会说错误:警告:mysql_num_rows()期望参数1是资源,第29行的C:\ xampp \ htdocs \ index.php中给出的布尔值无法保存文章。
你可以看到我在当地工作。
如果我尝试另一个Feed:http://www.dagbladet.no/rss/innenriks/,它会保存4个项目并在查询中只显示自定义错误消息,而不是警告:mysql_num_rows()需要参数..等等。
知道我在这里做错了吗?有没有人有xampp或wampp试用这个功能?
答案 0 :(得分:0)
实际上,$ desc没有被转义,我发送变量throug mysql_real_escape_string();所以在我的查询中我这样做:$ sql =“INSERT INTO文章(标题,链接,描述,发布日期,日期)VALUES('。”。mysql_real_escape_string($ title)。“','”。mysql_real_escape_string($ link)。“ ”, ' “.mysql_real_escape_string($递减)”。', '$ pubdate的',NOW())“;
现在可行。