yuzuru-s / parse-rss
This PHP library can easily parse xml files, especially RSS1.0, RSS2.0 and ATOM.
Installs: 30 506
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: >=5.5.0
- ext-curl: *
- ext-xml: *
- embed/embed: *
Requires (Dev)
- friendsofphp/php-cs-fixer: 0.3.*@dev
- phpunit/phpunit: 3.7.*@stable
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-11-10 02:50:08 UTC
README
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.
Requirements
- PHP
-
=5.5 >=5.6, >=7.0
-
- ext-xml
- ext-curl
- Composer
Installation
- Using composer
{
"require": {
"yuzuru-s/parse-rss": "1.0.*"
}
}
$ php composer.phar update yuzuru-s/parse-rss --dev
How to use
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"; } }
OUTPUT
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';
How to run unit test
Run with default setting.
% vendor/bin/phpunit -c phpunit.xml.dist
Currently tested with PHP 7.0.0
History
- 1.0.1
- Bug fix
- 1.0.0
- Published
License
Copyright (c) 2016 YUZURU SUZUKI. See MIT-LICENSE for further details.
Copyright
- Yuzuru Suzuki