This parser can handle RSS easily without being conscious of the difference of RSS1.0 and RSS2.0 and ATOM. and gets the minimum necessary value.
- site name
- site url
- article title
- article url
- article description
- date that article posted
- thumbnail of article
This thumbnail is composed by og:img and img tags included description.
- PHP
-
=5.5 >=5.6, >=7.0
-
- ext-xml
- ext-curl
- Composer
- Using composer
{
"require": {
"yuzuru-s/parse-rss": "1.0.*"
}
}
$ php composer.phar update yuzuru-s/parse-rss --dev
Please check sample code
<?php
require __DIR__ . '/../vendor/autoload.php';
use YuzuruS\Rss\Feed;
$url = 'http://blog.livedoor.jp/dqnplus/index.rdf';
$ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36';
$res = Feed::load($url, $ua, true);
echo 'Title:' . $res['channel']['title'] . "\n";
echo 'Link:' . $res['channel']['link'] . "\n";
foreach ($res['item'] as $r) {
echo "\t" . 'Article Title:' . $r['title'] . "\n";
echo "\t" . 'Article Description:' . $r['description'] . "\n";
echo "\t" . 'Article Date:' . $r['date'] . "\n";
echo "\t" . 'Article og:img:' . $r['image']['ogimg'] . "\n";
foreach ($r['image']['img'] as $i) {
echo "\t\t" . 'Desc:img:' . $i . "\n";
}
}
array(2) {
'channel' =>
array(2) {
'title' =>
string(27) "site name"
'link' =>
string "site url"
}
'item' =>
array(15) {
[0] =>
array(5) {
'title' =>
string "title"
'link' =>
string"url"
'date' =>
string "date"
'description' =>
string "description"
'image' =>
array(2) {
'ogimg' =>
string(58) "img url"
'img' =>
array(3) {
[0] =>
string(58) "img url1"
[1] =>
string(58) "img url2"
[2] =>
string(94) "img url3"
}
}
}
[1] =>
array(5) {
...
You can also enable caching:
Feed::$cacheDir = __DIR__ . '/tmp';
Feed::$cacheExpire = '5 hours';
Run with default setting.
% vendor/bin/phpunit -c phpunit.xml.dist
Currently tested with PHP 7.0.0
- 1.0.1
- Bug fix
- 1.0.0
- Published
Copyright (c) 2016 YUZURU SUZUKI. See MIT-LICENSE for further details.
- Yuzuru Suzuki