-
Notifications
You must be signed in to change notification settings - Fork 362
/
feeds.php
118 lines (103 loc) · 3.72 KB
/
feeds.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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?
/*-- Feed Start Class ----------------------------------*/
/*------------------------------------------------------*/
/* Simplified version of script_start, used for the */
/* sitewide RSS system. */
/*------------------------------------------------------*/
/********************************************************/
// Let's prevent people from clearing feeds
if (isset($_GET['clearcache'])) {
unset($_GET['clearcache']);
}
require 'classes/config.php'; // The config contains all site-wide configuration information as well as memcached rules
require(SERVER_ROOT.'/classes/misc.class.php'); // Require the misc class
require(SERVER_ROOT.'/classes/cache.class.php'); // Require the caching class
require(SERVER_ROOT.'/classes/feed.class.php'); // Require the feeds class
$Cache = NEW CACHE($MemcachedServers); // Load the caching class
$Feed = NEW FEED; // Load the time class
function check_perms() {
return false;
}
function is_number($Str) {
if ($Str < 0) {
return false;
}
// We're converting input to an int, then string, and comparing to the original
return ($Str == strval(intval($Str)) ? true : false);
}
function display_str($Str) {
if ($Str != '') {
$Str = make_utf8($Str);
$Str = mb_convert_encoding($Str, 'HTML-ENTITIES', 'UTF-8');
$Str = preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,5};)/m", '&', $Str);
$Replace = array(
"'",'"',"<",">",
'€','‚','ƒ','„','…','†','‡','ˆ',
'‰','Š','‹','Œ','Ž','‘','’','“',
'”','•','–','—','˜','™','š','›',
'œ','ž','Ÿ'
);
$With = array(
''','"','<','>',
'€','‚','ƒ','„','…','†','‡','ˆ',
'‰','Š','‹','Œ','Ž','‘','’','“',
'”','•','–','—','˜','™','š','›',
'œ','ž','Ÿ'
);
$Str = str_replace($Replace, $With, $Str);
}
return $Str;
}
function make_utf8($Str) {
if ($Str != '') {
if (is_utf8($Str)) {
$Encoding = 'UTF-8';
}
if (empty($Encoding)) {
$Encoding = mb_detect_encoding($Str, 'UTF-8, ISO-8859-1');
}
if (empty($Encoding)) {
$Encoding = 'ISO-8859-1';
}
if ($Encoding == 'UTF-8') {
return $Str;
} else {
return @mb_convert_encoding($Str, 'UTF-8', $Encoding);
}
}
}
function is_utf8($Str) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] // ASCII
| [\xC2-\xDF][\x80-\xBF] // non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] // excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} // straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] // excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} // planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} // planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} // plane 16
)*$%xs', $Str
);
}
function display_array($Array, $Escape = array()) {
foreach ($Array as $Key => $Val) {
if ((!is_array($Escape) && $Escape == true) || !in_array($Key, $Escape)) {
$Array[$Key] = display_str($Val);
}
}
return $Array;
}
/**
* Print the site's URL including the appropriate URI scheme, including the trailing slash
*
* @param bool $SSL - whether the URL should be crafted for HTTPS or regular HTTP
*/
function site_url($SSL = true) {
return $SSL ? 'https://' . SSL_SITE_URL . '/' : 'http://' . NONSSL_SITE_URL . '/';
}
header('Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0');
header('Pragma:');
header('Expires: '.date('D, d M Y H:i:s', time() + (2 * 60 * 60)).' GMT');
header('Last-Modified: '.date('D, d M Y H:i:s').' GMT');
$Feed->UseSSL = (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443);
require(SERVER_ROOT.'/sections/feeds/index.php');