Самый простой способ - это использовать cURL
, чтобы получить информацию в виде XML из URL-адреса rss, а затем использовать simplexml
, чтобы превратить XML-код rss в пересекаемый объект. Используйте Xpath, чтобы получить части XML, которые вы хотите сохранить в БД. Наконец, переместите данные в БД.
Пример
Извините, я выбежал за дверь, когда увидел ваш вопрос. Я на самом деле написал очень простой сценарий неделю назад, чтобы сделать то, о чем вы говорите:
//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 {
// Create Prepared Statement for Insert and bind variables.
$item_insert = $sql->prepare("INSERT INTO rsstable VALUES (?, ?, ?, ?)");
$item_insert->bind_param('ssss', $item->title,$item->link,$item->guid,$item->description);
//Loop through each item and execute prepared statement
foreach($rss_items as $item) {
$item_insert->execute();
}
}
}
$sql = new mysqli("localhost", "my_user", "my_password", "world");
$rss_url = "http://example.org/rssfeed";
$rss_xml = get_rss($rss_url);
rss2sql($rss_xml, $sql);