magpierss-0.72/0040755000076500007650000000000010333221327012744 5ustar kellankellanmagpierss-0.72/AUTHORS0100644000076500007650000000003407556615254014031 0ustar kellankellankellan magpierss-0.72/ChangeLog0100644000076500007650000002202510333221072014511 0ustar kellankellan2005-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/CHANGES0100644000076500007650000000212710333221072013733 0ustar kellankellanVersion 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/cookbook0100644000076500007650000000573007613421155014507 0ustar kellankellanMAGPIERSS 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/0040755000076500007650000000000010333221327014233 5ustar kellankellanmagpierss-0.72/extlib/Snoopy.class.inc0100644000076500007650000006541210330464675017342 0ustar kellankellanmagpierss-0.72/htdocs/0040755000076500007650000000000010333221327014230 5ustar kellankellanmagpierss-0.72/htdocs/cookbook.html0100644000076500007650000001406307647766526016762 0ustar kellankellan Magie RSS Recipes: Simple PHP RSS How To

MagpieRSS Recipes: Cooking with Corbies

"Four and twenty blackbirds baked in a pie."

  1. Limit the Number of Headlines(aka Items) Returned
  2. Display a Custom Error Message if Something Goes Wrong
  3. Generate a New RSS Feed
  4. Display Headlines More Recent then X Date
  5. Parse a Local File Containing RSS

1. Limit the Number of Headlines(aka Items) Returned.

Problem:

You want to display the 10 (or 3 or whatever) 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);

foreach ( $items as $item ) {

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." .
        "<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);

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.

Discussion:

An example of turning a Magpie parsed RSS object back into an RSS file is forthcoming. In the meantime RSSWriter is well documented.

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_once('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 "<p>";
    }
}

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

5. Parse a Local File Containing RSS

Problem:

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.

See:

http://www.php.net/manual/en/ref.filesystem.php,
http://www.php.net/manual/en/language.oop.php magpierss-0.72/htdocs/index.html0100644000076500007650000003030707672224672016247 0ustar kellankellan Magpie RSS - PHP RSS Parser

MagpieRSS

MagpieRSS provides an XML-based (expat) RSS parser in PHP.

MagpieRSS is compatible with RSS .9 through RSS 1.0, and supports the RSS 1.0's modules. (with a few exceptions)

News!

Why?

I wrote MagpieRSS out of a frustration with the limitations of existing solutions. In particular many of the existing PHP solutions seemed to: 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

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.

Usage Examples:

A very simple example would be:
require_once 'rss_fetch.inc';

$url = 'http://magpie.sf.net/samples/imc.1-0.rdf';
$rss = fetch_rss($url);

echo "Site: ", $rss->channel['title'], "<br>\n";
foreach ($rss->items as $item ) {
	$title = $item[title];
	$url   = $item[link];
	echo "<a href=$url>$title</a></li><br>\n";
}
More soon....in the meantime you can check out a cool tool built with MagpieRSS, version 0.1.

Todos

RSS Parser

RSS Cache

Fetch RSS

Misc

RSS Resources

.

License and Contact Info

Magpie is distributed under the GPL license...

coded by: kellan (at) protest.net, feedback is always appreciated.

SourceForge.net Logo magpierss-0.72/INSTALL0100644000076500007650000001115510157110566014003 0ustar kellankellanREQUIREMENTS 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 logo

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
Build Date Jun 3 2026 19:11:11
Configure Command './configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/opt/cpanel/ea-php73/root/usr' '--exec-prefix=/opt/cpanel/ea-php73/root/usr' '--bindir=/opt/cpanel/ea-php73/root/usr/bin' '--sbindir=/opt/cpanel/ea-php73/root/usr/sbin' '--sysconfdir=/opt/cpanel/ea-php73/root/etc' '--datadir=/opt/cpanel/ea-php73/root/usr/share' '--includedir=/opt/cpanel/ea-php73/root/usr/include' '--libdir=/opt/cpanel/ea-php73/root/usr/lib64' '--libexecdir=/opt/cpanel/ea-php73/root/usr/libexec' '--localstatedir=/opt/cpanel/ea-php73/root/var' '--sharedstatedir=/opt/cpanel/ea-php73/root/var/lib' '--mandir=/opt/cpanel/ea-php73/root/usr/share/man' '--infodir=/opt/cpanel/ea-php73/root/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/opt/cpanel/ea-php73/root/etc' '--with-config-file-scan-dir=/opt/cpanel/ea-php73/root/etc/php.d' '--disable-debug' '--with-password-argon2=/opt/cpanel/libargon2' '--with-pic' '--without-pear' '--with-bz2' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-sockets' '--with-kerberos' '--enable-shmop' '--with-libxml-dir=/opt/cpanel/ea-libxml2' '--with-system-tzdata' '--with-mhash' '--enable-fpm' '--with-fpm-systemd' '--libdir=/opt/cpanel/ea-php73/root/usr/lib64/php' '--without-mysqli' '--disable-pdo' '--enable-pcntl' '--without-gd' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-opcache' '--disable-xmlreader' '--disable-xmlwriter' '--without-sqlite3' '--disable-phar' '--disable-fileinfo' '--disable-json' '--without-pspell' '--disable-wddx' '--without-curl' '--disable-posix' '--disable-xml' '--disable-simplexml' '--disable-exif' '--without-gettext' '--without-iconv' '--disable-ftp' '--without-bz2' '--disable-ctype' '--disable-shmop' '--disable-sockets' '--disable-tokenizer' '--disable-sysvmsg' '--disable-sysvshm' '--disable-sysvsem' '--without-gmp' '--disable-calendar' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'LDFLAGS=-Wl,-rpath=/opt/cpanel/ea-brotli/lib -Wl,--enable-new-dtags -Wl,-rpath,/opt/cpanel/ea-libxml2/lib -Wl,-rpath,/opt/cpanel/ea-libxml2/lib64'
Server API FPM/FastCGI
Virtual Directory Support disabled
Configuration File (php.ini) Path /opt/cpanel/ea-php73/root/etc
Loaded Configuration File /opt/cpanel/ea-php73/root/etc/php.ini
Scan this dir for additional .ini files /opt/cpanel/ea-php73/root/etc/php.d
Additional .ini files parsed /opt/cpanel/ea-php73/root/etc/php.d/20-ctype.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-dom.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-ftp.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-iconv.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-json.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-mbstring.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-mysqlnd.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-pdo.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-phar.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-posix.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-simplexml.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-sqlite3.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-tokenizer.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-xml.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-xmlwriter.ini, /opt/cpanel/ea-php73/root/etc/php.d/20-xsl.ini, /opt/cpanel/ea-php73/root/etc/php.d/30-mysqli.ini, /opt/cpanel/ea-php73/root/etc/php.d/30-pdo_mysql.ini, /opt/cpanel/ea-php73/root/etc/php.d/30-pdo_sqlite.ini, /opt/cpanel/ea-php73/root/etc/php.d/30-wddx.ini, /opt/cpanel/ea-php73/root/etc/php.d/30-xmlreader.ini, /opt/cpanel/ea-php73/root/etc/php.d/zzzzzzz-pecl.ini
PHP API 20180731
PHP Extension 20180731
Zend Extension 320180731
Zend Extension Build API320180731,NTS
PHP Extension Build API20180731,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling enabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streamshttps, ftps, compress.zlib, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filterszlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies

Configuration

cgi-fcgi

php-fpm active
DirectiveLocal ValueMaster Value
cgi.discard_path00
cgi.fix_pathinfo11
cgi.force_redirect11
cgi.nph00
cgi.redirect_status_envno valueno value
cgi.rfc2616_headers00
fastcgi.error_headerno valueno value
fastcgi.logging11
fpm.configno valueno value

Core

PHP Version 7.3.33
DirectiveLocal ValueMaster Value
allow_url_fopenOnOn
allow_url_includeOffOff
arg_separator.input&&
arg_separator.output&&
auto_append_fileno valueno value
auto_globals_jitOnOn
auto_prepend_fileno valueno value
browscapno valueno value
default_charsetUTF-8UTF-8
default_mimetypetext/htmltext/html
disable_classesno valueno value
disable_functionsexec,passthru,shell_exec,systemexec,passthru,shell_exec,system
display_errorsOffOff
display_startup_errorsOffOff
doc_root/home/forms/public_html/home/forms/public_html
docref_extno valueno value
docref_rootno valueno value
enable_dlOffOff
enable_post_data_readingOnOn
error_append_stringno valueno value
error_log/home/forms/logs/forms_christiananswers_net.php.error.log/home/forms/logs/forms_christiananswers_net.php.error.log
error_prepend_stringno valueno value
error_reporting3275932759
expose_phpOffOff
extension_dir/opt/cpanel/ea-php73/root/usr/lib64/php/modules/opt/cpanel/ea-php73/root/usr/lib64/php/modules
file_uploadsOnOn
hard_timeout22
highlight.comment#FF8000#FF8000
highlight.default#0000BB#0000BB
highlight.html#000000#000000
highlight.keyword#007700#007700
highlight.string#DD0000#DD0000
html_errorsOnOn
ignore_repeated_errorsOffOff
ignore_repeated_sourceOffOff
ignore_user_abortOffOff
implicit_flushOffOff
include_path.:/opt/cpanel/ea-php73/root/usr/share/pear.:/opt/cpanel/ea-php73/root/usr/share/pear
input_encodingno valueno value
internal_encodingno valueno value
log_errorsOnOn
log_errors_max_len10241024
mail.add_x_headerOnOn
mail.force_extra_parametersno valueno value
mail.logno valueno value
max_execution_time3030
max_file_uploads2020
max_input_nesting_level6464
max_input_time6060
max_input_vars10001000
memory_limit128M128M
open_basedirno valueno value
output_bufferingno valueno value
output_encodingno valueno value
output_handlerno valueno value
post_max_size8M8M
precision1414
realpath_cache_size4096K4096K
realpath_cache_ttl120120
register_argc_argvOnOn
report_memleaksOnOn
report_zend_debugOnOn
request_orderGPGP
sendmail_fromno valueno value
sendmail_path/usr/sbin/sendmail -t -i/usr/sbin/sendmail -t -i
serialize_precision100100
short_open_tagOnOn
SMTPlocalhostlocalhost
smtp_port2525
sys_temp_dirno valueno value
syslog.facilityLOG_USERLOG_USER
syslog.filterno-ctrlno-ctrl
syslog.identphpphp
track_errorsOffOff
unserialize_callback_funcno valueno value
upload_max_filesize2M2M
upload_tmp_dirno valueno value
user_dirno valueno value
user_ini.cache_ttl300300
user_ini.filename.user.ini.user.ini
variables_orderGPCSGPCS
xmlrpc_error_number00
xmlrpc_errorsOffOff
zend.assertions-1-1
zend.detect_unicodeOnOn
zend.enable_gcOnOn
zend.multibyteOffOff
zend.script_encodingno valueno value
zend.signal_checkOffOff

ctype

ctype functions enabled

date

date/time support enabled
timelib version 2018.04
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone UTC
DirectiveLocal ValueMaster Value
date.default_latitude31.766731.7667
date.default_longitude35.233335.2333
date.sunrise_zenith90.58333390.583333
date.sunset_zenith90.58333390.583333
date.timezoneUTCUTC

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.15.3
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

filter

Input Validation and Filtering enabled
DirectiveLocal ValueMaster Value
filter.defaultunsafe_rawunsafe_raw
filter.default_flagsno valueno value

ftp

FTP support enabled
FTPS support enabled

hash

hash support enabled
Hashing Engines md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5
MHASH support Enabled
MHASH API Version Emulated Support

iconv

iconv support enabled
iconv implementation glibc
iconv library version 2.28
DirectiveLocal ValueMaster Value
iconv.input_encodingno valueno value
iconv.internal_encodingno valueno value
iconv.output_encodingno valueno value

json

json support enabled
json version 1.7.0

libxml

libXML support active
libXML Compiled Version 2.15.3
libXML Loaded Version 21503
libXML streams enabled

mbstring

Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
libmbfl version 1.3.2
oniguruma version 6.9.4
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) backtrack check On
Multibyte regex (oniguruma) version 6.9.4
DirectiveLocal ValueMaster Value
mbstring.detect_orderno valueno value
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputno valueno value
mbstring.http_outputno valueno value
mbstring.http_output_conv_mimetypes^(text/|application/xhtml\+xml)^(text/|application/xhtml\+xml)
mbstring.internal_encodingno valueno value
mbstring.languageneutralneutral
mbstring.regex_stack_limit100000100000
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value

mysqli

MysqlI Supportenabled
Client API library version mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
DirectiveLocal ValueMaster Value
mysqli.allow_local_infileOffOff
mysqli.allow_persistentOnOn
mysqli.default_hostno valueno value
mysqli.default_port33063306
mysqli.default_pwno valueno value
mysqli.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock
mysqli.default_userno valueno value
mysqli.max_linksUnlimitedUnlimited
mysqli.max_persistentUnlimitedUnlimited
mysqli.reconnectOffOff
mysqli.rollback_on_cached_plinkOffOff

mysqlnd

mysqlndenabled
Version mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
Compression supported
core SSL supported
extended SSL supported
Command buffer size 4096
Read buffer size 32768
Read timeout 86400
Collecting statistics Yes
Collecting memory statistics No
Tracing n/a
Loaded plugins mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
API Extensions mysqli,pdo_mysql
mysqlnd statistics
bytes_sent 0
bytes_received 0
packets_sent 0
packets_received 0
protocol_overhead_in 0
protocol_overhead_out 0
bytes_received_ok_packet 0
bytes_received_eof_packet 0
bytes_received_rset_header_packet 0
bytes_received_rset_field_meta_packet 0
bytes_received_rset_row_packet 0
bytes_received_prepare_response_packet 0
bytes_received_change_user_packet 0
packets_sent_command 0
packets_received_ok 0
packets_received_eof 0
packets_received_rset_header 0
packets_received_rset_field_meta 0
packets_received_rset_row 0
packets_received_prepare_response 0
packets_received_change_user 0
result_set_queries 0
non_result_set_queries 0
no_index_used 0
bad_index_used 0
slow_queries 0
buffered_sets 0
unbuffered_sets 0
ps_buffered_sets 0
ps_unbuffered_sets 0
flushed_normal_sets 0
flushed_ps_sets 0
ps_prepared_never_executed 0
ps_prepared_once_executed 0
rows_fetched_from_server_normal 0
rows_fetched_from_server_ps 0
rows_buffered_from_client_normal 0
rows_buffered_from_client_ps 0
rows_fetched_from_client_normal_buffered 0
rows_fetched_from_client_normal_unbuffered 0
rows_fetched_from_client_ps_buffered 0
rows_fetched_from_client_ps_unbuffered 0
rows_fetched_from_client_ps_cursor 0
rows_affected_normal 0
rows_affected_ps 0
rows_skipped_normal 0
rows_skipped_ps 0
copy_on_write_saved 0
copy_on_write_performed 0
command_buffer_too_small 0
connect_success 0
connect_failure 0
connection_reused 0
reconnect 0
pconnect_success 0
active_connections 0
active_persistent_connections 0
explicit_close 0
implicit_close 0
disconnect_close 0
in_middle_of_command_close 0
explicit_free_result 0
implicit_free_result 0
explicit_stmt_close 0
implicit_stmt_close 0
mem_emalloc_count 0
mem_emalloc_amount 0
mem_ecalloc_count 0
mem_ecalloc_amount 0
mem_erealloc_count 0
mem_erealloc_amount 0
mem_efree_count 0
mem_efree_amount 0
mem_malloc_count 0
mem_malloc_amount 0
mem_calloc_count 0
mem_calloc_amount 0
mem_realloc_count 0
mem_realloc_amount 0
mem_free_count 0
mem_free_amount 0
mem_estrndup_count 0
mem_strndup_count 0
mem_estrdup_count 0
mem_strdup_count 0
mem_edupl_count 0
mem_dupl_count 0
proto_text_fetched_null 0
proto_text_fetched_bit 0
proto_text_fetched_tinyint 0
proto_text_fetched_short 0
proto_text_fetched_int24 0
proto_text_fetched_int 0
proto_text_fetched_bigint 0
proto_text_fetched_decimal 0
proto_text_fetched_float 0
proto_text_fetched_double 0
proto_text_fetched_date 0
proto_text_fetched_year 0
proto_text_fetched_time 0
proto_text_fetched_datetime 0
proto_text_fetched_timestamp 0
proto_text_fetched_string 0
proto_text_fetched_blob 0
proto_text_fetched_enum 0
proto_text_fetched_set 0
proto_text_fetched_geometry 0
proto_text_fetched_other 0
proto_binary_fetched_null 0
proto_binary_fetched_bit 0
proto_binary_fetched_tinyint 0
proto_binary_fetched_short 0
proto_binary_fetched_int24 0
proto_binary_fetched_int 0
proto_binary_fetched_bigint 0
proto_binary_fetched_decimal 0
proto_binary_fetched_float 0
proto_binary_fetched_double 0
proto_binary_fetched_date 0
proto_binary_fetched_year 0
proto_binary_fetched_time 0
proto_binary_fetched_datetime 0
proto_binary_fetched_timestamp 0
proto_binary_fetched_string 0
proto_binary_fetched_json 0
proto_binary_fetched_blob 0
proto_binary_fetched_enum 0
proto_binary_fetched_set 0
proto_binary_fetched_geometry 0
proto_binary_fetched_other 0
init_command_executed_count 0
init_command_failed_count 0
com_quit 0
com_init_db 0
com_query 0
com_field_list 0
com_create_db 0
com_drop_db 0
com_refresh 0
com_shutdown 0
com_statistics 0
com_process_info 0
com_connect 0
com_process_kill 0
com_debug 0
com_ping 0
com_time 0
com_delayed_insert 0
com_change_user 0
com_binlog_dump 0
com_table_dump 0
com_connect_out 0
com_register_slave 0
com_stmt_prepare 0
com_stmt_execute 0
com_stmt_send_long_data 0
com_stmt_close 0
com_stmt_reset 0
com_stmt_set_option 0
com_stmt_fetch 0
com_deamon 0
bytes_received_real_data_normal 0
bytes_received_real_data_ps 0

openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.1.1k FIPS 25 Mar 2021
OpenSSL Header Version OpenSSL 1.1.1k FIPS 25 Mar 2021
Openssl default config /etc/pki/tls/openssl.cnf
DirectiveLocal ValueMaster Value
openssl.cafileno valueno value
openssl.capathno valueno value

pcntl

pcntl supportenabled

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 10.32 2018-09-10
PCRE Unicode Version 11.0.0
PCRE JIT Support enabled
PCRE JIT Target x86 64bit (little endian + unaligned)
DirectiveLocal ValueMaster Value
pcre.backtrack_limit10000001000000
pcre.jit11
pcre.recursion_limit100000100000

PDO

PDO supportenabled
PDO drivers mysql, sqlite

pdo_mysql

PDO Driver for MySQLenabled
Client API version mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
DirectiveLocal ValueMaster Value
pdo_mysql.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock

pdo_sqlite

PDO Driver for SQLite 3.xenabled
SQLite Library 3.26.0

Phar

Phar: PHP Archive supportenabled
Phar API version 1.1.1
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression disabled (install ext/bz2)
Native OpenSSL support enabled
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.
DirectiveLocal ValueMaster Value
phar.cache_listno valueno value
phar.readonlyOnOn
phar.require_hashOnOn

posix

POSIX support enabled

Reflection

Reflection enabled

session

Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary wddx
DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_httponlyno valueno value
session.cookie_lifetime00
session.cookie_path//
session.cookie_samesiteno valueno value
session.cookie_secure00
session.gc_divisor00
session.gc_maxlifetime14401440
session.gc_probability00
session.lazy_writeOnOn
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_path/var/cpanel/php/sessions/ea-php73/var/cpanel/php/sessions/ea-php73
session.serialize_handlerphpphp
session.sid_bits_per_character44
session.sid_length3232
session.upload_progress.cleanupOnOn
session.upload_progress.enabledOnOn
session.upload_progress.freq1%1%
session.upload_progress.min_freq11
session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefixupload_progress_upload_progress_
session.use_cookies11
session.use_only_cookies11
session.use_strict_mode00
session.use_trans_sid00

SimpleXML

SimpleXML support enabled
Schema support enabled

SPL

SPL supportenabled
Interfaces OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

sqlite3

SQLite3 supportenabled
SQLite Library 3.26.0
DirectiveLocal ValueMaster Value
sqlite3.defensive11
sqlite3.extension_dirno valueno value

standard

Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i
DirectiveLocal ValueMaster Value
assert.active11
assert.bail00
assert.callbackno valueno value
assert.exception00
assert.quiet_eval00
assert.warning11
auto_detect_line_endings00
default_socket_timeout6060
fromno valueno value
session.trans_sid_hostsno valueno value
session.trans_sid_tagsa=href,area=href,frame=src,form=a=href,area=href,frame=src,form=
url_rewriter.hostsno valueno value
url_rewriter.tagsa=href,area=href,frame=src,input=src,form=fakeentrya=href,area=href,frame=src,input=src,form=fakeentry
user_agentno valueno value

tokenizer

Tokenizer Support enabled

wddx

WDDX Supportenabled
WDDX Session Serializer enabled

xml

XML Support active
XML Namespace Support active
libxml2 Version 2.15.3

xmlreader

XMLReader enabled

xmlwriter

XMLWriter enabled

xsl

XSL enabled
libxslt Version 1.1.32
libxslt compiled against libxml Version 2.9.7
EXSLT enabled
libexslt Version 1.1.32

zlib

ZLib Supportenabled
Stream Wrapper compress.zlib://
Stream Filter zlib.inflate, zlib.deflate
Compiled Version 1.2.11
Linked Version 1.2.11
DirectiveLocal ValueMaster Value
zlib.output_compressionOffOff
zlib.output_compression_level-1-1
zlib.output_handlerno valueno value

Additional Modules

Module Name

Environment

VariableValue
USER forms
HOME /home/forms

PHP Variables

VariableValue
$_SERVER['USER']forms
$_SERVER['HOME']/home/forms
$_SERVER['SCRIPT_NAME']/php/magpierss.php
$_SERVER['REQUEST_URI']/php/magpierss.php
$_SERVER['QUERY_STRING']no value
$_SERVER['REQUEST_METHOD']GET
$_SERVER['SERVER_PROTOCOL']HTTP/1.1
$_SERVER['GATEWAY_INTERFACE']CGI/1.1
$_SERVER['REMOTE_PORT']15997
$_SERVER['SCRIPT_FILENAME']/home/forms/public_html/php/magpierss.php
$_SERVER['SERVER_ADMIN']webmaster@forms.christiananswers.net
$_SERVER['CONTEXT_DOCUMENT_ROOT']/home/forms/public_html
$_SERVER['CONTEXT_PREFIX']no value
$_SERVER['REQUEST_SCHEME']https
$_SERVER['DOCUMENT_ROOT']/home/forms/public_html
$_SERVER['REMOTE_ADDR']216.73.217.101
$_SERVER['SERVER_PORT']443
$_SERVER['SERVER_ADDR']45.56.91.230
$_SERVER['SERVER_NAME']forms.christiananswers.net
$_SERVER['SERVER_SOFTWARE']Apache
$_SERVER['SERVER_SIGNATURE']no value
$_SERVER['PATH']/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin
$_SERVER['HTTP_X_HTTPS']1
$_SERVER['HTTP_HOST']forms.christiananswers.net
$_SERVER['HTTP_REFERER']http://forms.christiananswers.net/php/magpierss.php
$_SERVER['HTTP_ACCEPT_ENCODING']gzip, br, zstd, deflate
$_SERVER['HTTP_USER_AGENT']Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
$_SERVER['HTTP_ACCEPT']*/*
$_SERVER['proxy-nokeepalive']1
$_SERVER['SSL_TLS_SNI']forms.christiananswers.net
$_SERVER['HTTPS']on
$_SERVER['SCRIPT_URI']https://forms.christiananswers.net/php/magpierss.php
$_SERVER['SCRIPT_URL']/php/magpierss.php
$_SERVER['UNIQUE_ID']ainCKlldauapHw852Zv8ywAAABE
$_SERVER['FCGI_ROLE']RESPONDER
$_SERVER['PHP_SELF']/php/magpierss.php
$_SERVER['REQUEST_TIME_FLOAT']1781121578.1217
$_SERVER['REQUEST_TIME']1781121578
$_SERVER['argv']
Array
(
)
$_SERVER['argc']0

PHP Credits

PHP Group
Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski
Language Design & Concept
Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger
PHP Authors
ContributionAuthors
Zend Scripting Language Engine Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov
Extension Module API Andi Gutmans, Zeev Suraski, Andrei Zmievski
UNIX Build and Modularization Stig Bakken, Sascha Schumann, Jani Taskinen
Windows Support Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski, Kalle Sommer Nielsen
Server API (SAPI) Abstraction Layer Andi Gutmans, Shane Caraveo, Zeev Suraski
Streams Abstraction Layer Wez Furlong, Sara Golemon
PHP Data Objects Layer Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
Output Handler Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner
Consistent 64 bit support Anthony Ferrara, Anatol Belski
SAPI Modules
ContributionAuthors
Apache 2.0 Handler Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code)
CGI / FastCGI Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov
CLI 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
ModuleAuthors
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/phpmagpierss-0.72/NEWS0100644000076500007650000000350707672224152013460 0ustar kellankellanMagpieRSS 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/README0100644000076500007650000000242507622352556013644 0ustar kellankellanNAME 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'] . "

"; echo "

"; 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.inc0100644000076500007650000001435010171230317015370 0ustar kellankellanmagpierss-0.72/rss_fetch.inc0100644000076500007650000003532210333217740015425 0ustar kellankellan