This is a fork of the original picoFeed (which has been abandoned).
This fork will strive to make picofeed as simple, fast and modern as possible by stripping out everything that's not purely directly related to parsing and creating feeds, and replacing them with third party components. Most notably, all HTTP requests are now handled by Guzzle, logging is optionally handled by Monolog, and caching will be optionally handled by Guzzle Middlewares.
- Simple and fast
- Feed parser for Atom 1.0 and RSS 0.91, 0.92, 1.0 and 2.0
- Feed writer for Atom 1.0 and RSS 2.0
- Favicon fetcher
- Import/Export OPML subscriptions
- Content filter: HTML cleanup, remove pixel trackers and Ads
- Proxy support
- Content grabber: download from the original website the full content
- Enclosure detection
- RTL languages support
- License: MIT
- PHP >= 7.1
- libxml >= 2.7
- XML PHP extensions: DOM and SimpleXML
- cURL or Stream Context (
allow_url_fopen=On
) - iconv extension
- Development version: master
- Stable version: use the last tag
Install with composer
composer require nicolus/picofeed @stable
Usage example with the Composer autoloader:
<?php
require 'vendor/autoload.php';
use PicoFeed\Reader\Reader;
$reader = new Reader;
$resource = $reader->download('http://linuxfr.org/news.atom');
$parser = $reader->getParser(
$resource->getUrl(),
$resource->getContent(),
$resource->getEncoding()
);
$feed = $parser->execute();
echo $feed;
- Feed parsing
- Feed creation
- Favicon fetcher
- OPML
- Image proxy (avoid SSL mixed content warnings)
- Web scraping
- Exceptions
- Debugging
- Configuration
- Running unit tests