SimpleXmlElement无法获取项目

时间:2013-03-08 17:21:16

标签: php mysql function rss simplexml

我做了这样的功能:

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试用这个功能?

1 个答案:

答案 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())“;

现在可行。