mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-24 14:11:29 +01:00
remove never used rssparser from API
This commit is contained in:
parent
04b6349044
commit
6d87d0c1cf
@ -1,274 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**************************************************************************\
|
|
||||||
* eGroupWare API - rss parser *
|
|
||||||
* ------------------------------------------------------------------------ *
|
|
||||||
* This is not part of eGroupWare, but is used by eGroupWare. *
|
|
||||||
* http://www.egroupware.org/ *
|
|
||||||
* ------------------------------------------------------------------------ *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU Lesser General Public License as published *
|
|
||||||
* by the Free Software Foundation; either version 2.1 of the License, or *
|
|
||||||
* any later version. *
|
|
||||||
\**************************************************************************/
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* rssparse.php3
|
|
||||||
*
|
|
||||||
* Copyright (C) 2000 Jeremey Barrett
|
|
||||||
* j@nwow.org
|
|
||||||
* http://nwow.org
|
|
||||||
*
|
|
||||||
* Version 0.4
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2.1 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* rssparse.php3 is a small PHP script for parsing RDF/RSS XML data. It has been
|
|
||||||
* tested with a number of popular web news and information sites such as
|
|
||||||
* slashdot.org, lwn.net, and freshmeat.net. This is not meant to be exhaustive
|
|
||||||
* but merely to provide the basic necessities. It will grow in capabilities
|
|
||||||
* with time, I'm sure.
|
|
||||||
*
|
|
||||||
* This is code I wrote for Nerds WithOut Wires, http://nwow.org.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* USAGE:
|
|
||||||
* In your PHP script, simply do something akin to this:
|
|
||||||
*
|
|
||||||
* include("rssparse.php3");
|
|
||||||
* $fp = fopen("file", "r");
|
|
||||||
* $rss = rssparse($fp);
|
|
||||||
*
|
|
||||||
* if (!$rss) {
|
|
||||||
* ERROR;
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* while (list(,$item) = each($rss->items)) {
|
|
||||||
* printf("Title: %s\n", $item["title"]);
|
|
||||||
* printf("Link: %s\n", $item["link"]);
|
|
||||||
* printf("Description: %s\n", $item["desc"]);
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* printf("Channel Title: %s\n", $rss->title);
|
|
||||||
* printf("Channel Description: %s\n", $rss->desc);
|
|
||||||
* printf("Channel Link: %s\n", $rss->link);
|
|
||||||
*
|
|
||||||
* printf("Image Title: %s\n", $rss->image["title"]);
|
|
||||||
* printf("Image URL: %s\n", $rss->image["url"]);
|
|
||||||
* printf("Image Description: %s\n", $rss->image["desc"]);
|
|
||||||
* printf("Image Link: %s\n", $rss->image["link"]);
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* CHANGES:
|
|
||||||
* 0.4 - rssparse.php3 now supports the channel image tag and correctly supports
|
|
||||||
* RSS-style channels.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* BUGS:
|
|
||||||
* Width and height tags in image not supported, some other tags not supported
|
|
||||||
* yet.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* IMPORTANT NOTE:
|
|
||||||
* This requires PHP's XML routines. You must configure PHP with --with-xml.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function _rssparse_start_elem ($parser, $elem, $attrs)
|
|
||||||
{
|
|
||||||
switch($elem)
|
|
||||||
{
|
|
||||||
case 'CHANNEL':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'channel';
|
|
||||||
$GLOBALS['_rss']->tmptitle[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmplink[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmpdesc[$GLOBALS['_rss']->depth] = '';
|
|
||||||
break;
|
|
||||||
case 'IMAGE':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'image';
|
|
||||||
$GLOBALS['_rss']->tmptitle[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmplink[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmpdesc[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmpurl[$GLOBALS['_rss']->depth] = '';
|
|
||||||
break;
|
|
||||||
case 'ITEM':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'item';
|
|
||||||
$GLOBALS['_rss']->tmptitle[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmplink[$GLOBALS['_rss']->depth] = '';
|
|
||||||
$GLOBALS['_rss']->tmpdesc[$GLOBALS['_rss']->depth] = '';
|
|
||||||
break;
|
|
||||||
case 'TITLE':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'title';
|
|
||||||
break;
|
|
||||||
case 'LINK':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'link';
|
|
||||||
break;
|
|
||||||
case 'DESCRIPTION':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'desc';
|
|
||||||
break;
|
|
||||||
case 'URL':
|
|
||||||
$GLOBALS['_rss']->depth++;
|
|
||||||
$GLOBALS['_rss']->state[$GLOBALS['_rss']->depth] = 'url';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _rssparse_end_elem ($parser, $elem)
|
|
||||||
{
|
|
||||||
switch ($elem)
|
|
||||||
{
|
|
||||||
case 'CHANNEL':
|
|
||||||
$GLOBALS['_rss']->set_channel(
|
|
||||||
$GLOBALS['_rss']->tmptitle[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmplink[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmpdesc[$GLOBALS['_rss']->depth]
|
|
||||||
);
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
case 'IMAGE':
|
|
||||||
$GLOBALS['_rss']->set_image(
|
|
||||||
$GLOBALS['_rss']->tmptitle[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmplink[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmpdesc[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmpurl[$GLOBALS['_rss']->depth]
|
|
||||||
);
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
case 'ITEM':
|
|
||||||
$GLOBALS['_rss']->add_item(
|
|
||||||
$GLOBALS['_rss']->tmptitle[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmplink[$GLOBALS['_rss']->depth],
|
|
||||||
$GLOBALS['_rss']->tmpdesc[$GLOBALS['_rss']->depth]
|
|
||||||
);
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
case 'TITLE':
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
case 'LINK':
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
case 'DESCRIPTION':
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
case 'URL':
|
|
||||||
$GLOBALS['_rss']->depth--;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _rssparse_elem_data ($parser, $data)
|
|
||||||
{
|
|
||||||
switch ($GLOBALS['_rss']->state[$GLOBALS['_rss']->depth])
|
|
||||||
{
|
|
||||||
case 'title':
|
|
||||||
$GLOBALS['_rss']->tmptitle[($GLOBALS['_rss']->depth - 1)] .= $data;
|
|
||||||
break;
|
|
||||||
case 'link';
|
|
||||||
$GLOBALS['_rss']->tmplink[($GLOBALS['_rss']->depth - 1)] .= $data;
|
|
||||||
break;
|
|
||||||
case 'desc':
|
|
||||||
$GLOBALS['_rss']->tmpdesc[($GLOBALS['_rss']->depth - 1)] .= $data;
|
|
||||||
break;
|
|
||||||
case 'url':
|
|
||||||
$GLOBALS['_rss']->tmpurl[($GLOBALS['_rss']->depth - 1)] .= $data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class rssparser
|
|
||||||
{
|
|
||||||
var $title;
|
|
||||||
var $link;
|
|
||||||
var $desc;
|
|
||||||
var $items = array();
|
|
||||||
var $nitems;
|
|
||||||
var $image = array();
|
|
||||||
var $state = array();
|
|
||||||
var $tmptitle = array();
|
|
||||||
var $tmplink = array();
|
|
||||||
var $tmpdesc = array();
|
|
||||||
var $tmpurl = array();
|
|
||||||
var $depth;
|
|
||||||
|
|
||||||
function rssparser()
|
|
||||||
{
|
|
||||||
$this->nitems = 0;
|
|
||||||
$this->depth = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_channel($in_title, $in_link, $in_desc)
|
|
||||||
{
|
|
||||||
$this->title = $in_title;
|
|
||||||
$this->link = $in_link;
|
|
||||||
$this->desc = $in_desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_image($in_title, $in_link, $in_desc, $in_url)
|
|
||||||
{
|
|
||||||
$this->image['title'] = $in_title;
|
|
||||||
$this->image['link'] = $in_link;
|
|
||||||
$this->image['desc'] = $in_desc;
|
|
||||||
$this->image['url'] = $in_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
function add_item($in_title, $in_link, $in_desc)
|
|
||||||
{
|
|
||||||
$this->items[$this->nitems]['title'] = $in_title;
|
|
||||||
$this->items[$this->nitems]['link'] = $in_link;
|
|
||||||
$this->items[$this->nitems]['desc'] = $in_desc;
|
|
||||||
$this->nitems++;
|
|
||||||
}
|
|
||||||
|
|
||||||
function parse($fp)
|
|
||||||
{
|
|
||||||
$xml_parser = xml_parser_create();
|
|
||||||
|
|
||||||
xml_set_element_handler($xml_parser, '_rssparse_start_elem', '_rssparse_end_elem');
|
|
||||||
xml_set_character_data_handler($xml_parser, '_rssparse_elem_data');
|
|
||||||
|
|
||||||
while ($data = fread($fp, 4096))
|
|
||||||
{
|
|
||||||
if (!xml_parse($xml_parser, $data, feof($fp)))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
xml_parser_free($xml_parser);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function rssparse ($fp)
|
|
||||||
{
|
|
||||||
$GLOBALS['_rss'] = new rssparser();
|
|
||||||
|
|
||||||
if ($GLOBALS['_rss']->parse($fp))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $GLOBALS['_rss'];
|
|
||||||
}
|
|
||||||
?>
|
|
Loading…
Reference in New Issue
Block a user