/
rssgrabber.php
84 lines (60 loc) · 2.21 KB
/
rssgrabber.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/*
RSS Grabber / Âûäèðàëêà RSS
Converts any HTML page to RSS feed
Copyright (C) 2004 Kolia Morev <kolyuchiy@gmail.com>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
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. See the
GNU General Public License for more details.
You should have received a copy of the GNU 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.
*/
require_once('Cache/Lite.php');
// Set a id for this cache
$id = $_GET['id'];
// Set a few options
$options = array(
'cacheDir' => 'tmp/',
'lifeTime' => 3600
);
// Create a Cache_Lite object
$Cache_Lite = new Cache_Lite($options);
// Test if thereis a valide cache for this id
if ($data = $Cache_Lite->get($id)) {
} else { // No valid cache found (you have to make the page)
require_once('XML/HTMLSax3.php');
require_once("Handlers/$id.php");
// Instantiate the handler
$handler = new $id();
$doc = file_get_contents($handler->url);
// Instantiate the parser
$parser =& new XML_HTMLSax3();
// Register the handler with the parser
$parser->set_object($handler);
// Set a parser option
$parser->set_option('XML_OPTION_TRIM_DATA_NODES');
// Set the handlers
$parser->set_element_handler('openHandler','closeHandler');
$parser->set_data_handler('dataHandler');
// Parse the document
ob_start();
ob_implicit_flush(false);
$parser->parse($doc);
$data = ob_get_contents();
ob_end_clean();
$Cache_Lite->save($data);
}
header('Content-Type: text/xml');
echo $data;
// Ñòàòèñòèêà
define("_BBC_PAGE_NAME", $id . " RSS");
define("_BBCLONE_DIR", "../stats/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
?>