PHP kullanarak MySQL için bir RSS beslemesi Yazma

3 Cevap php

Temelde ben MySQL belgeye bilgi bir RSS beslemesi ve yazma okuyacak bir PHP belge oluşturmak gerekir. Ancak bu alanda çok az deneyime sahip ve birisi bunu yapmak için nasıl bir örnek vermek mümkün olacağını merak ediyordum? Ben MagpieRSS incorperated bir şey düşünüyordum, ancak belgeler hala) = karanlıkta bana çok şey var

Herhangi bir yardım büyük mutluluk duyacağız

3 Cevap

Değil ama hedefleyen tam emin ne:

Magpie belgeleri: (Kullanımı Örnekler bakınız)

require_once 'rss_fetch.inc';

$url = 'http://magpie.sf.net/samples/imc.1-0.rdf';
$rss = fetch_rss($url);

echo "Site: ", $rss->channel['title'], "<br>";
foreach ($rss->items as $item ) {
    $title = $item[title];
    $url   = $item[link];
    echo "<a href=$url>$title</a></li><br>";
}

Bu kullanılabilir bölüme RSS beslemesi alacak. Böyle bir şey değiştirmek olabilir:

foreach ($rss->items as $item ) {
    $title = $item[title];
    $url   = $item[link];
    mysql_query("INSERT INTO `table` (`id`, `title`, `link`) VALUES (NULL, '$title', '$url')")";
}

Yani eğer başka bir şey başlamak gerekir.

Gitmek için en kolay yolu cURL rss url XML olarak bilgi almak için kullanın ve sonra simplexml bir çaprazlanabiliyorsa nesnesine rss XML açmak için kullanmak olacaktır. Eğer DB saklamak istediğiniz XML parçaları almak için XPath kullanın. Son olarak, DB veri taşımak.

Example

Ben sizin sorunuzu görünce Üzgünüm, ben kapı dışarı fırlarken edildi. Ben aslında ne konuştuğunu çoğunu yapmak için bir hafta önce çok basit bir script yazdım:

 //cURL to get RSS as XML
function get_rss($feed_url) {
    $feed_request = curl_init($feed_url);
    curl_setopt($feed_request, CURLOPT_RETURNTRANSFER, 1);
    $feed_xml = curl_exec($feed_request);
    curl_close($feed_request);

    return $feed_xml;
}

function rss2sql($xml, $sql) {
    //simplexml to convert XML to objects
    $rss_xml = simplexml_load_string($xml);
    //XPath to get an array of items in RSS
    $rss_items = $rss_xml -> xpath('//item');
    if(!$rss_items) {
    	die("No Items In RSS Feed!");
    }
    else {
            //Loop through each item, convert to string, insert string to MySQL
    	foreach($rss_items as $item) {
                        $item_array = array($item->title,$item->link,$item->guid,$item->description);
                        $item_sql = "(".implode(","$item_array).")";
                        $item_sql = $sql -> escape_string($item_sql);
                        $insert = "INSERT INTO rsstable VALUES('$item_sql');
                        $sql -> query($insert);
    	}
    }
}

$sql = new mysqli("localhost", "my_user", "my_password", "world");
$rss_url = "http://example.org/rssfeed";
$rss_xml = get_rss($rss_url);

rss2sql($its_rss_alerts_xml, $sql);

MagpieRSS iyi bir seçim gibi görünüyor. Evet, belgeleri daha iyi olabilir ama sen ön sayfada ihtiyaç tüm örneklerde var:

require('rss_fetch.inc');
$rss = fetch_rss($url);
$items = rss->items;

Sadece size sonra veritabanına eklemek için işleyebilirsiniz ilişkilendirilebilir bir dizi var bununla.

foreach ($rss->items as $item ) {
    $title = $item[title];
    $url   = $item[link];
    mysql_query("INSERT INTO rss_articles ( title, link ) VALUES ( $title, $url );

    //Of course, this has no security measures which you should really look into.    	
}