magpierss-0.72/ 0040755 0000765 0000765 00000000000 10333221327 012744 5 ustar kellan kellan magpierss-0.72/AUTHORS 0100644 0000765 0000765 00000000034 07556615254 014031 0 ustar kellan kellan kellan
magpierss-0.72/ChangeLog 0100644 0000765 0000765 00000022025 10333221072 014511 0 ustar kellan kellan 2005-10-28 14:11 kellan
* extlib/Snoopy.class.inc: a better solution
2005-10-28 11:51 kellan
* extlib/Snoopy.class.inc: fix arbtriary code execution
vulnerability when using curl+ssl
http://www.sec-consult.com/216.html
2005-03-08 10:46 kellan
* rss_parse.inc: fix bug w/ atom and date normalization
2005-02-09 14:59 kellan
* rss_fetch.inc: fix stale cache bug
2005-01-28 02:27 kellan
* rss_parse.inc: support php w/o array_change_case
2005-01-23 20:02 kellan
* rss_fetch.inc: fix cache bug introduced by charset encoding
2005-01-12 09:14 kellan
* rss_cache.inc, rss_fetch.inc: more sanity checks for when things
go wrong
2004-12-12 13:44 kellan
* INSTALL, rss_cache.inc, rss_utils.inc: detab
2004-11-23 20:15 kellan
* rss_parse.inc: fix calling iconv instead of mb_convert_encoding
2004-11-22 02:11 kellan
* CHANGES, ChangeLog, rss_parse.inc, scripts/magpie_debug.php: last
bit of tidying
2004-11-22 01:45 kellan
* rss_fetch.inc: detab, bump version
2004-11-22 01:43 kellan
* rss_parse.inc: was filtering too much
2004-11-22 00:03 kellan
* rss_fetch.inc, rss_parse.inc: cache on $url . $output_encoding
otherwise we can get munged output
2004-11-21 23:52 kellan
* rss_parse.inc: add WARNING
2004-11-21 23:45 kellan
* rss_parse.inc: don't set ERROR on notice or warning (rss_fetch
dies on parse errors)
2004-11-21 23:44 kellan
* rss_fetch.inc: add encoding defines (fix timeout error reporting)
2004-11-21 20:21 kellan
* rss_parse.inc: incorporate steve's patch
2004-11-21 19:26 kellan
* rss_parse.inc: remove old debugging functions, totally
arbitrarily. might break stuff. can't really explain why i'm
doing this.
2004-10-28 15:52 kellan
* rss_parse.inc: fixed '=' instead of '=='
2004-10-26 00:48 kellan
* rss_parse.inc: chance epoch to timestamp to conform w/ php naming
conventions
2004-06-15 12:00 kellan
* rss_parse.inc: [no log message]
2004-04-26 14:16 kellan
* rss_fetch.inc: bump version
2004-04-26 12:36 kellan
* rss_parse.inc: fix field doubling
2004-04-24 17:47 kellan
* CHANGES, ChangeLog: updated
2004-04-24 17:35 kellan
* rss_fetch.inc: bumped version
2004-04-24 16:52 kellan
* rss_parse.inc: support arbitrary atom content constructs
some refactoring
2004-04-24 16:15 kellan
* rss_parse.inc: support summary content contstruct. add normalize
function
2004-03-27 16:29 kellan
* extlib/Snoopy.class.inc: accept self-signed certs
2004-03-27 12:53 kellan
* extlib/Snoopy.class.inc: fixed SSL support * set status * set
error on bad curl
(also ripped out big chunks of dead weight (submit_form) which
were getting in my way
2004-01-25 02:25 kellan
* rss_parse.inc: make RSS 1.0's rdf:about available
2004-01-25 02:07 kellan
* rss_parse.inc: clean up text, and line formats. add support item
rdf:about
2004-01-24 23:40 kellan
* CHANGES, ChangeLog: update changes
2004-01-24 23:37 kellan
* rss_fetch.inc: updated version
2004-01-24 23:35 kellan
* rss_parse.inc: whitespace
2004-01-24 23:23 kellan
* extlib/Snoopy.class.inc: support badly formatted http headers
2004-01-24 23:20 kellan
* rss_parse.inc: added alpha atom parsing support
2003-06-25 22:34 kellan
* extlib/Snoopy.class.inc: fixed fread 4.3.2 compatibility problems
2003-06-13 11:31 kellan
* rss_fetch.inc: reset cache on 304
2003-06-12 21:37 kellan
* rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc:
bumped up version numbers
2003-06-12 21:32 kellan
* htdocs/index.html: updated news
2003-06-12 21:27 kellan
* NEWS: a manual blog :)
2003-06-12 21:22 kellan
* htdocs/index.html: fully qualified img
2003-06-12 21:20 kellan
* htdocs/index.html: clean up. added badge.
2003-06-12 21:04 kellan
* rss_utils.inc: clean up regex
2003-06-12 21:02 kellan
* rss_cache.inc: suppress some warnings
2003-05-30 20:44 kellan
* extlib/Snoopy.class.inc: more comments, cleaned up notice
2003-05-30 15:14 kellan
* extlib/Snoopy.class.inc: don't advertise gzip support if the user
hasn't built php with gzinflate support
2003-05-12 22:32 kellan
* ChangeLog: changes
2003-05-12 22:11 kellan
* htdocs/index.html: announce 0.5
2003-05-12 21:42 kellan
* htdocs/index.html: change
2003-05-12 21:39 kellan
* rss_fetch.inc: use gzip
2003-05-12 21:37 kellan
* extlib/Snoopy.class.inc: added support gzip encoded content
negoiation
2003-05-12 21:32 kellan
* rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: fixed
typoes
2003-04-26 21:44 kellan
* rss_parse.inc: fix minor typo
2003-04-18 08:19 kellan
* htdocs/cookbook.html: updated cookbook to show more code for
limiting items
2003-03-03 16:02 kellan
* rss_parse.inc, scripts/magpie_slashbox.php: committed (or
adpated) patch from Nicola (www.technick.com) to quell 'Undefined
Indexes' notices
2003-03-03 15:59 kellan
* rss_fetch.inc: commited patch from nicola (www.technick.com) to
quell 'undefined indexes' notices.
* Magpie now automatically includes its version in the
user-agent, & whether cacheing is turned on.
2003-02-12 01:22 kellan
* CHANGES, ChangeLog: ChangeLog now auto-generated by cvs2cl
2003-02-12 00:21 kellan
* rss_fetch.inc: better errors, hopefully stomped on pesky notices
2003-02-12 00:19 kellan
* rss_parse.inc: check to see is xml is supported, if not die
also throw better xml errors
2003-02-12 00:18 kellan
* rss_cache.inc: hopefully cleared up some notices that were being
thrown into the log
fixed a debug statement that was being called as an error
2003-02-12 00:15 kellan
* scripts/: magpie_simple.php, magpie_slashbox.php: moved
magpie_simple to magpie_slashbox, and replaced it with a simpler
demo.
2003-02-12 00:02 kellan
* INSTALL, README, TROUBLESHOOTING: Improved documentation. Better
install instructions.
TROUBLESHOOTING cover common installation and usage problems
2003-01-22 14:40 kellan
* htdocs/cookbook.html: added cookbook.html
2003-01-21 23:47 kellan
* cookbook: a magpie cookbook
2003-01-20 10:09 kellan
* ChangeLog: updated
2003-01-20 09:23 kellan
* scripts/simple_smarty.php: minor clean up
2003-01-20 09:15 kellan
* scripts/README: added smarty url
2003-01-20 09:14 kellan
* magpie_simple.php, htdocs/index.html, scripts/README,
scripts/magpie_debug.php, scripts/magpie_simple.php,
scripts/simple_smarty.php,
scripts/smarty_plugin/modifier.rss_date_parse.php,
scripts/templates/simple.smarty: Added scripts directory for
examples on how to use MagpieRSS
magpie_simple - is a simple example magpie_debug - spew all the
information from a parsed RSS feed simple_smary - example of
using magpie with Smarty template system
smarty_plugin/modifier.rss_date_parse.php - support file for the
smarty demo templates/simple.smary - template for the smarty demo
2003-01-20 09:11 kellan
* rss_fetch.inc, rss_parse.inc: changes to error handling to give
script authors more access to magpie's errors.
added method magpie_error() to retrieve global MAGPIE_ERROR
variable for when fetch_rss() returns false
2002-10-26 19:02 kellan
* htdocs/index.html: putting the website under source control
2002-10-26 18:43 kellan
* AUTHORS, ChangeLog, INSTALL, README: some documentation to make
it all look official :)
2002-10-25 23:04 kellan
* magpie_simple.php: quxx
2002-10-25 23:04 kellan
* rss_parse.inc: added support for textinput and image
2002-10-25 19:23 kellan
* magpie_simple.php, rss_cache.inc, rss_fetch.inc, rss_parse.inc,
rss_utils.inc: switched to using Snoopy for fetching remote RSS
files.
added support for conditional gets
2002-10-25 19:22 kellan
* rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc:
Change comment style to slavishly imitate the phpinsider style
found in Smarty and Snoopy :)
2002-10-25 19:18 kellan
* extlib/Snoopy.class.inc: added Snoopy in order to support
conditional gets
2002-10-23 23:19 kellan
* magpie_simple.php, rss_cache.inc, rss_fetch.inc, rss_parse.inc:
MAJOR CLEANUP!
* rss_fetch got rid of the options array, replaced it with a more
PHP-like solution of using defines. constants are setup, with
defaults, in the function init()
got rid of the idiom of passing back an array, its was awkward to
deal with in PHP, and unusual (and consquently confusing to
people). now i return true/false values, and try to setup error
string where appropiate (rss_cache has the most complete example
of this)
change the logic for interacting with the cache
* rss_cache major re-working of how error are handled. tried to
make the code more resillient. the cache is now much more aware
of MAX_AGE, where before this was being driven out of rss_fetch
(which was silly)
* rss_parse properly handles xml parse errors. used to sail
along blithely unaware.
2002-09-11 11:11 kellan
* rss_cache.inc, rss_parse.inc, magpie_simple.php, rss_fetch.inc,
rss_utils.inc: Initial revision
2002-09-11 11:11 kellan
* rss_cache.inc, rss_parse.inc, magpie_simple.php, rss_fetch.inc,
rss_utils.inc: initial import
magpierss-0.72/CHANGES 0100644 0000765 0000765 00000002127 10333221072 013733 0 ustar kellan kellan Version 0.72
-----------
- fix security exploit: http://www.sec-consult.com/216.html
Version 0.7
-----------
- support for input and output charset encoding
based on the work in FoF, uses iconv or mbstring if available
-
Version 0.6
-----------
- basic support for Atom syndication format
including support for Atom content constructs
- fixed support for private feeds (HTTP Auth and SSL)
(thanks to silverorange.com for providing test feeds)
- support for some broken webservers
Version 0.52
-----------
- support GZIP content negoiation
- PHP 4.3.2 support
Version 0.4
-----------
- improved error handling, better access for script authors
- included example scripts of working with MagpieRSS
- new Smarty plugin for RSS date parsing
Version 0.3
-----------
- added support for conditional gets (Last-Modified, ETag)
- now use Snoopy to handle fetching RSS files
Version 0.2
-----------
- MAJOR CLEAN UP
- removed kludgy $options array in favour of constants
- phased out returning arrays
- added better error handling
- re-worked comments
magpierss-0.72/cookbook 0100644 0000765 0000765 00000005730 07613421155 014507 0 ustar kellan kellan MAGPIERSS RECIPES: Cooking with Corbies
"Four and twenty blackbirds baked in a pie."
1. LIMIT THE NUMBER OF HEADLINES(AKA ITEMS) RETURNED.
PROBLEM:
You want to display the 10 (or 3) most recent headlines, but the RSS feed
contains 15.
SOLUTION:
$num_items = 10;
$rss = fetch_rss($url);
$items = array_slice($rss->items, 0, $num_items);
DISCUSSION:
Rather then trying to limit the number of items Magpie parses, a much simpler,
and more flexible approach is to take a "slice" of the array of items. And
array_slice() is smart enough to do the right thing if the feed has less items
then $num_items.
See: http://www.php.net/array_slice
2. DISPLAY A CUSTOM ERROR MESSAGE IF SOMETHING GOES WRONG
PROBLEM:
You don't want Magpie's error messages showing up if something goes wrong.
SOLUTION:
# Magpie throws USER_WARNINGS only
# so you can cloak these, by only showing ERRORs
error_reporting(E_ERROR);
# check the return value of fetch_rss()
$rss = fetch_rss($url);
if ( $rss ) {
...display rss feed...
}
else {
echo "An error occured! " .
"Consider donating more $$$ for restoration of services." .
" Error Message: " . magpie_error();
}
DISCUSSION:
MagpieRSS triggers a warning in a number of circumstances. The 2 most common
circumstances are: if the specified RSS file isn't properly formed (usually
because it includes illegal HTML), or if Magpie can't download the remote RSS
file, and there is no cached version.
If you don't want your users to see these warnings change your error_reporting
settings to only display ERRORs. Another option is to turn off display_error,
so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages.
You can do this with:
ini_set('display_errors', 0);
See: http://www.php.net/error_reporting,
http://www.php.net/ini_set,
http://www.php.net/manual/en/ref.errorfunc.php
3. GENERATE A NEW RSS FEED
PROBLEM:
Create an RSS feed for other people to use.
SOLUTION:
Use Useful Inc's RSSWriter (http://usefulinc.com/rss/rsswriter/)
DISCUSSION:
An example of turning a Magpie parsed RSS object back into an RSS file is forth
coming. In the meantime RSSWriter has great documentation.
4. DISPLAY HEADLINES MORE RECENT THEN X DATE
PROBLEM:
You only want to display headlines that were published on, or after a certain
date.
SOLUTION:
require 'rss_utils.inc';
# get all headlines published today
$today = getdate();
# today, 12AM
$date = mktime(0,0,0,$today['mon'], $today['mday'], $today['year']);
$rss = fetch_rss($url);
foreach ( $rss->items as $item ) {
$published = parse_w3cdtf($item['dc']['date']);
if ( $published >= $date ) {
echo "Title: " . $item['title'];
echo "Published: " . date("h:i:s A", $published);
echo "
";
}
}
DISCUSSION:
This recipe only works for RSS 1.0 feeds that include the field.
(which is very good RSS style)
parse_w3cdtf is defined in rss_utils.inc, and parses RSS style dates into Unix
epoch seconds.
See: http://www.php.net/manual/en/ref.datetime.php
magpierss-0.72/extlib/ 0040755 0000765 0000765 00000000000 10333221327 014233 5 ustar kellan kellan magpierss-0.72/extlib/Snoopy.class.inc 0100644 0000765 0000765 00000065412 10330464675 017342 0 ustar kellan kellan magpierss-0.72/htdocs/ 0040755 0000765 0000765 00000000000 10333221327 014230 5 ustar kellan kellan magpierss-0.72/htdocs/cookbook.html 0100644 0000765 0000765 00000014063 07647766526 016762 0 ustar kellan kellan
Magie RSS Recipes: Simple PHP RSS How To
Rather then trying to limit the number of items Magpie parses, a much simpler,
and more flexible approach is to take a "slice" of the array of items. And
array_slice() is smart enough to do the right thing if the feed has less items
then $num_items.
2. Display a Custom Error Message if Something Goes Wrong
Problem:
You don't want Magpie's error messages showing up if something goes wrong.
Solution:
# Magpie throws USER_WARNINGS only
# so you can cloak these, by only showing ERRORs
error_reporting(E_ERROR);
# check the return value of fetch_rss()
$rss = fetch_rss($url);
if ( $rss ) {
...display rss feed...
}
else {
echo "An error occured! " .
"Consider donating more $$$ for restoration of services." .
"<br>Error Message: " . magpie_error();
}
Discussion:
MagpieRSS triggers a warning in a number of circumstances. The 2 most common
circumstances are: if the specified RSS file isn't properly formed (usually
because it includes illegal HTML), or if Magpie can't download the remote RSS
file, and there is no cached version.
If you don't want your users to see these warnings change your error_reporting
settings to only display ERRORs.
Another option is to turn off display_error,
so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages.
You can do this with:
# you can also do this in your php.ini file
ini_set('display_errors', 0);
This recipe only works for RSS 1.0 feeds that include the field.
(which is very good RSS style) parse_w3cdtf() is defined in
rss_utils.inc, and parses RSS style dates into Unix epoch
seconds.
MagpieRSS provides fetch_rss() which takes a URL and returns a
parsed RSS object, but what if you want to parse a file stored locally that
doesn't have a URL?
Solution
require_once('rss_parse.inc');
$rss_file = 'some_rss_file.rdf';
$rss_string = read_file($rss_file);
$rss = new MagpieRSS( $rss_string );
if ( $rss and !$rss->ERROR) {
...display rss...
}
else {
echo "Error: " . $rss->ERROR;
}
# efficiently read a file into a string
# in php >= 4.3.0 you can simply use file_get_contents()
#
function read_file($filename) {
$fh = fopen($filename, 'r') or die($php_errormsg);
$rss_string = fread($fh, filesize($filename) );
fclose($fh);
return $rss_string;
}
Discussion
Here we are using MagpieRSS's RSS parser directly without the convience wrapper
of fetch_rss(). We read the contents of the RSS file into a
string, and pass it to the parser constructor. Notice also that error handling
is subtly different.
improved error handling, more flexibility for script authors,
backwards compatible
new and better examples! including using MagpieRSS and Smarty
new Smarty plugin for RSS date parsing
Why?
I wrote MagpieRSS out of a frustration with the limitations of existing
solutions. In particular many of the existing PHP solutions seemed to:
use a parser based on regular expressions, making for an inherently
fragile solution
only support early versions of RSS
discard all the interesting information besides item title, description,
and link.
not build proper separation between parsing the RSS and displaying it.
In particular I failed to find any PHP RSS parsers that could sufficiently
parse RSS 1.0 feeds, to be useful on the RSS based event feeds we generate
at Protest.net.
Features
Easy to Use
As simple as:
require('rss_fetch.inc');
$rss = fetch_rss($url);
Parses RSS 0.9 - RSS 1.0
Parses most RSS formats, including support for
1.0 modules and limited
namespace support. RSS is packed into convenient data structures; easy to
use in PHP, and appropriate for passing to a templating system, like
Smarty.
Integrated Object Cache
Caching the parsed RSS means that the 2nd request is fast, and that
including the rss_fetch call in your PHP page won't destroy your performance,
and force you to reply on an external cron job. And it happens transparently.
Makes extensive use of constants to allow overriding default behaviour, and
installation on shared hosts.
Modular
rss_fetch.inc - wraps a simple interface (fetch_rss())
around the library.
rss_parse.inc - provides the RSS parser, and the RSS object
rss_cache.inc - a simple (no GC) object cache, optimized for RSS objects
rss_utils.inc - utility functions for working with RSS. currently
provides parse_w3cdtf(), for parsing W3CDTF into epoch seconds.
Magpie's approach to parsing RSS
Magpie takes a naive, and inclusive approach. Absolutely
non-validating, as long as the RSS feed is well formed, Magpie will
cheerfully parse new, and never before seen tags in your RSS feeds.
This makes it very simple support the varied versions of RSS simply, but
forces the consumer of a RSS feed to be cognizant of how it is
structured.(at least if you want to do something fancy)
Magpie parses a RSS feed into a simple object, with 4 fields:
channel, items, image, and
textinput.
channel
$rss->channel contains key-value pairs of all tags, without
nested tags, found between the root tag (<rdf:RDF>, or <rss>)
and the end of the document.
items
$rss->items is an array of associative arrays, each one
describing a single item. An example that looks like:
<item rdf:about="http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257">
<title>Weekly Peace Vigil</title>
<link>http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257</link>
<description>Wear a white ribbon</description>
<dc:subject>Peace</dc:subject>
<ev:startdate>2002-06-01T11:00:00</ev:startdate>
<ev:location>Northampton, MA</ev:location>
<ev:enddate>2002-06-01T12:00:00</ev:enddate>
<ev:type>Protest</ev:type>
</item>
Is parsed, and pushed on the $rss->items array as:
array(
title => 'Weekly Peace Vigil',
link => 'http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257',
description => 'Wear a white ribbon',
dc => array (
subject => 'Peace'
),
ev => array (
startdate => '2002-06-01T11:00:00',
enddate => '2002-06-01T12:00:00',
type => 'Protest',
location => 'Northampton, MA'
)
);
image and textinput
$rss->image and $rss-textinput are associative arrays
including name-value pairs for anything found between the respective parent
tags.
coded by: kellan (at) protest.net, feedback is always appreciated.
magpierss-0.72/INSTALL 0100644 0000765 0000765 00000011155 10157110566 014003 0 ustar kellan kellan REQUIREMENTS
MapieRSS requires a recent PHP 4+ (developed with 4.2.0)
with xml (expat) support.
Optionally:
* PHP5 with libxml2 support.
* cURL for SSL support
* iconv (preferred) or mb_string for expanded character set support
QUICK START
Magpie consists of 4 files (rss_fetch.inc, rss_parser.inc, rss_cache.inc,
and rss_utils.inc), and the directory extlib (which contains a modified
version of the Snoopy HTTP client)
Copy these 5 resources to a directory named 'magpierss' in the same
directory as your PHP script.
At the top of your script add the following line:
require_once('magpierss/rss_fetch.inc');
Now you can use the fetch_rss() method:
$rss = fetch_rss($url);
Done. That's it. See README for more details on using MagpieRSS.
NEXT STEPS
Important: you'll probably want to get the cache directory working in
order to speed up your application, and not abuse the webserver you're
downloading the RSS from.
Optionally you can install MagpieRSS in your PHP include path in order to
make it available server wide.
Lastly you might want to look through the constants in rss_fetch.inc see if
there is anything you want to override (the defaults are pretty good)
For more info, or if you have trouble, see TROUBLESHOOTING
SETTING UP CACHING
Magpie has built-in transparent caching. With caching Magpie will only
fetch and parse RSS feeds when there is new content. Without this feature
your pages will be slow, and the sites serving the RSS feed will be annoyed
with you.
** Simple and Automatic **
By default Magpie will try to create a cache directory named 'cache' in the
same directory as your PHP script.
** Creating a Local Cache Directory **
Often this will fail, because your webserver doesn't have sufficient
permissions to create the directory.
Exact instructions for how to do this will vary from install to install and
platform to platform. The steps are:
1. Make a directory named 'cache'
2. Give the web server write access to that directory.
An example of how to do this on Debian would be:
1. mkdir /path/to/script/cache
2. chgrp www-data /path/to/script/cache
3. chmod 775 /path/to/script/cache
On other Unixes you'll need to change 'www-data' to what ever user Apache
runs as. (on MacOS X the user would be 'www')
** Cache in /tmp **
Sometimes you won't be able to create a local cache directory. Some reasons
might be:
1. No shell account
2. Insufficient permissions to change ownership of a directory
3. Webserver runs as 'nobody'
In these situations using a cache directory in /tmp can often be a good
option.
The drawback is /tmp is public, so anyone on the box can read the cache
files. Usually RSS feeds are public information, so you'll have to decide
how much of an issue that is.
To use /tmp as your cache directory you need to add the following line to
your script:
define('MAGPIE_CACHE_DIR', '/tmp/magpie_cache');
** Global Cache **
If you have several applications using Magpie, you can create a single
shared cache directory, either using the /tmp cache, or somewhere else on
the system.
The upside is that you'll distribute fetching and parsing feeds across
several applications.
INSTALLING MAGPIE SERVER WIDE
Rather then following the Quickstart instructions which requires you to have
a copy of Magpie per application, alternately you can place it in some
shared location.
** Adding Magpie to Your Include Path **
Copy the 5 resources (rss_fetch.inc, rss_parser.inc, rss_cache.inc,
rss_utils.inc, and extlib) to a directory named 'magpierss' in your include
path. Now any PHP file on your system can use Magpie with:
require_once('magpierss/rss_fetch.inc');
Different installs have different include paths, and you'll have to figure
out what your include_path is.
From shell you can try:
php -i | grep 'include_path'
Alternatley you can create a phpinfo.php file with contains:
PHP 7.3.33 - phpinfo()
PHP Version 7.3.33
System
Linux samuel.christiananswers.net 4.18.0-553.36.1.el8_10.x86_64 #1 SMP Wed Jan 22 03:07:54 EST 2025 x86_64
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Phar based on pear/PHP_Archive, original concept by Davey Shafik. Phar fully realized by Gregory Beaver and Marcus Boerger. Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui
Embed
Edin Kadribasic
FastCGI Process Manager
Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet
litespeed
George Wang
phpdbg
Felipe Pena, Joe Watkins, Bob Weinand
Module Authors
Module
Authors
BC Math
Andi Gutmans
Bzip2
Sterling Hughes
Calendar
Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong
COM and .Net
Wez Furlong
ctype
Hartmut Holzgraefe
cURL
Sterling Hughes
Date/Time Support
Derick Rethans
DB-LIB (MS SQL, Sybase)
Wez Furlong, Frank M. Kromann, Adam Baratz
DBA
Sascha Schumann, Marcus Boerger
DOM
Christian Stocker, Rob Richards, Marcus Boerger
enchant
Pierre-Alain Joye, Ilia Alshanetsky
EXIF
Rasmus Lerdorf, Marcus Boerger
fileinfo
Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski
Firebird driver for PDO
Ard Biesheuvel
FTP
Stefan Esser, Andrew Skalski
GD imaging
Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger
GetText
Alex Plotnick
GNU GMP support
Stanislav Malyshev
Iconv
Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi
IMAP
Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky
Input Filter
Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky
InterBase
Jouni Ahto, Andrew Avdeev, Ard Biesheuvel
Internationalization
Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar
JSON
Jakub Zelenka, Omar Kilani, Scott MacVicar
LDAP
Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas
LIBXML
Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo
Multibyte String Functions
Tsukada Takuya, Rui Hirokawa
MySQL driver for PDO
George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQLi
Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd
Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter
OCI8
Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation
ODBC driver for PDO
Wez Furlong
ODBC
Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky
Opcache
Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui
OpenSSL
Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar
Oracle (OCI) driver for PDO
Wez Furlong
pcntl
Jason Greene, Arnaud Le Blanc
Perl Compatible Regexps
Andrei Zmievski
PHP Archive
Gregory Beaver, Marcus Boerger
PHP Data Objects
Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
PHP hash
Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar
Posix
Kristian Koehntopp
PostgreSQL driver for PDO
Edin Kadribasic, Ilia Alshanetsky
PostgreSQL
Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne
Pspell
Vlad Krupin
Readline
Thies C. Arntzen
Recode
Kristian Koehntopp
Reflection
Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter
Sessions
Sascha Schumann, Andrei Zmievski
Shared Memory Operations
Slava Poliakov, Ilia Alshanetsky
SimpleXML
Sterling Hughes, Marcus Boerger, Rob Richards
SNMP
Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin
SOAP
Brad Lafountain, Shane Caraveo, Dmitry Stogov
Sockets
Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene
Sodium
Frank Denis
SPL
Marcus Boerger, Etienne Kneuss
SQLite 3.x driver for PDO
Wez Furlong
SQLite3
Scott MacVicar, Ilia Alshanetsky, Brad Dewar
System V Message based IPC
Wez Furlong
System V Semaphores
Tom May
System V Shared Memory
Christian Cartus
tidy
John Coggeshall, Ilia Alshanetsky
tokenizer
Andrei Zmievski, Johannes Schlueter
WDDX
Andrei Zmievski
XML
Stig Bakken, Thies C. Arntzen, Sterling Hughes
XMLReader
Rob Richards
xmlrpc
Dan Libby
XMLWriter
Rob Richards, Pierre-Alain Joye
XSL
Christian Stocker, Rob Richards
Zip
Pierre-Alain Joye, Remi Collet
Zlib
Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner
PHP Documentation
Authors
Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Philip Olson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey
Editor
Peter Cowburn
User Note Maintainers
Daniel P. Brown, Thiago Henrique Pojda
Other Contributors
Previously active authors, editors and other contributors are listed in the manual.
PHP Quality Assurance Team
Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs
Websites and Infrastructure team
PHP Websites Team
Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison
Event Maintainers
Damien Seguy, Daniel P. Brown
Network Infrastructure
Daniel P. Brown
Windows Infrastructure
Alex Schoenmaker
PHP License
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
Debian's default is:
/usr/share/php
(though more idealogically pure location would be /usr/local/share/php)
Apple's default include path is:
/usr/lib/php
While the Entropy PHP build seems to use:
/usr/local/php/lib/php magpierss-0.72/NEWS 0100644 0000765 0000765 00000003507 07672224152 013460 0 ustar kellan kellan MagpieRSS News
MAGPIERSS 0.51 RELEASED
* important bugfix!
* fix "silent failure" when PHP doesn't have zlib
FEED ON FEEDS USES MAGPIE
* web-based RSS aggregator built with Magpie
* easy to install, easy to use.
http://minutillo.com/steve/feedonfeeds/
MAGPIERSS 0.5 RELEASED
* supports transparent HTTP gzip content negotiation for reduced bandwidth usage
* quashed some undefined index notices
MAGPIERSS 0.46 RELEASED
* minor release, more error handling clean up
* documentation fixes, simpler example
* new trouble shooting guide for installation and usage problems
http://magpierss.sourceforge.net/TROUBLESHOOTING
MAGPIE NEWS AS RSS
* releases, bug fixes, releated stories in RSS
MAGPIERSS COOKBOOK: SIMPLE PHP RSS HOW TOS
* answers some of the most frequently asked Magpie questions
* feedback, suggestions, requests, recipes welcome
http://magpierss.sourceforge.net/cookbook.html
MAGPIERSS 0.4 RELEASED!
* improved error handling, more flexibility for script authors, backwards compatible
* new and better examples! including using MagpieRSS and Smarty
* new Smarty plugin for RSS date parsing
http://smarty.php.net
INFINITE PENGUIN NOW SUPPORTS MAGPIE 0.3
* simple, sophisticated RSS viewer
* includes auto-generated javascript ticker from RSS feed
http://www.infinitepenguins.net/rss/
TRAUMWIND RELEASES REX BACKEND FOR MAGPIERSS
* drop in support using regex based XML parser
* parses improperly formed XML that chokes expat
http://traumwind.de/blog/magpie/magpie_alike.php
MAGPIERSS 0.3 RELEASED!
* Support added for HTTP Conditional GETs.
http://fishbowl.pastiche.org/archives/001132.html
MAGPIERSS 0.2!
* Major clean up of the code. Easier to use.
* Simpler install on shared hosts.
* Better documentation and comments.
magpierss-0.72/README 0100644 0000765 0000765 00000002425 07622352556 013644 0 ustar kellan kellan NAME
MagpieRSS - a simple RSS integration tool
SYNOPSIS
require_once(rss_fetch.inc);
$url = $_GET['url'];
$rss = fetch_rss( $url );
echo "Channel Title: " . $rss->channel['title'] . "
";
DESCRIPTION
MapieRSS is an XML-based RSS parser in PHP. It attempts to be "PHP-like",
and simple to use.
Some features include:
* supports RSS 0.9 - 1.0, with limited RSS 2.0 support
* supports namespaces, and modules, including mod_content and mod_event
* open minded [1]
* simple, functional interface, to object oriented backend parser
* automatic caching of parsed RSS objects makes its easy to integrate
* supports conditional GET with Last-Modified, and ETag
* uses constants for easy override of default behaviour
* heavily commented
1. By open minded I mean Magpie will accept any tag it finds in good faith that
it was supposed to be here. For strict validation, look elsewhere.
GETTING STARTED
COPYRIGHT:
Copyright(c) 2002 kellan@protest.net. All rights reserved.
This software is released under the GNU General Public License.
Please read the disclaimer at the top of the Snoopy.class.inc file.
magpierss-0.72/rss_cache.inc 0100644 0000765 0000765 00000014350 10171230317 015370 0 ustar kellan kellan magpierss-0.72/rss_fetch.inc 0100644 0000765 0000765 00000035322 10333217740 015425 0 ustar kellan kellan