pqrs/checkrss

检查 RSS 提要中的新项目

dev-master 2018-02-14 11:04 UTC

This package is auto-updated.

Last update: 2024-09-22 07:02:33 UTC


README

检查 RSS 提要中的新项目

CheckRSS 提供了一些方法来

  • 获取 RSS 提要中的所有项目
  • 检查自上次检查以来哪些项目是新的
  • 每次运行检查新项目时都记录日志

建议使用 CheckRSS 与 cron 作业一起使用,以便您能定期获取新项目,尽管您也可以手动运行它。

安装

composer require pqrs/checkrss=dev-master

或者,直接将依赖项添加到您的 composer.json 文件中

"require": {
    "pqrs/checkrss": "dev-master"
}

然后将它添加到您的 PHP 代码中

require_once __DIR__ . '/vendor/autoload.php';   // Autoload files using Composer autoload

use CheckRSS\RSS;

用法

方法 getItems($feed_url)

此方法获取 RSS 提要中发布的所有项目,并返回一个包含它们的对象。

$rss = new RSS;

$items = $rss->getItems("http://feeds.nbcnews.com/feeds/topstories");

返回的对象示例可能如下所示

SimpleXMLElement Object
(
    [guid] => https://www.nbcnews.com/storyline/hurricane-irma/...
    [title] => One-two punch of disease and Irma has left Florida citrus reeling
    [pubDate] => Sat, 10 Feb 2018 15:17:00 GMT
    [link] => https://www.nbcnews.com/storyline/hurricane-irma/...
    [description] => Hurricane Irma served as a knockout punch for many of Florida's...
)

方法 getNewItems($items)

此方法检查在获取项目(使用 getItems 获取)中哪些项目自上次检查以来是新的。

返回一个仅包含新项目的对象。

$rss = new RSS;

// Gets all the items published in the rss feed and stores them in $items
$items = $rss->getItems("http://feeds.nbcnews.com/feeds/topstories");

// Checks which items are new since last check
if ($newitems = $rss->getNewItems($items) ) {

    // Prints new items
    echo "New items found:" . PHP_EOL . PHP_EOL;

    foreach ($newitems as $value) {

        echo $value->title          . PHP_EOL;
        echo $value->description    . PHP_EOL;
        echo $value->guid           . PHP_EOL;
        echo $value->link           . PHP_EOL. PHP_EOL;

    }

} else {

    echo "There'are no new items in RSS feed";

}

方法 storeLastItemID($item_id)

内部使用。此方法将最后读取的项目 ID 写入文件,以便在将来的检查中比较。

方法 isNewItem($item_id)

内部使用。此方法将最后读取的项目 ID 与上次检查中存储的最后读取的项目 ID 进行比较。

方法 WriteLog($logline)

这是一个简单的方法,每次检查时都写入日志文件。

示例

您可以在 tests 文件夹 中找到这些函数的一些用法。

先决条件

PHP 5.3.0

贡献

当然欢迎贡献!

致谢

版权 © 2018 Alvaro Piqueras - pqrs

这是我之前写的一段脏代码的清理。这也是我在 GitHub、Composer 和 Packagist 上的第一次尝试,所以如果您发现一些错误或有一些建议给我,我会非常乐意听到。

希望这段代码能满足您的需求。

许可

该项目使用 MIT 许可证 - 详细信息请参阅 LICENSE 文件。