OSDN Git Service

iDB HTTP encoding system updated added deflate. ^_^
[idb/iDB.git.git] / inc / misc / functions.php
1 <?php\r
2 /*\r
3     This program is free software; you can redistribute it and/or modify\r
4     it under the terms of the Revised BSD License.\r
5 \r
6     This program is distributed in the hope that it will be useful,\r
7     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
8     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
9     Revised BSD License for more details.\r
10 \r
11     Copyright 2004-2007 Cool Dude 2k - http://intdb.sourceforge.net/\r
12     Copyright 2004-2007 Game Maker 2k - http://upload.idb.s1.jcink.com/\r
13 \r
14     $FileInfo: functions.php - Last Update: 05/14/2007 SVN 4 - Author: cooldude2k $\r
15 */\r
16 $File1Name = dirname($_SERVER['SCRIPT_NAME'])."/";\r
17 $File2Name = $_SERVER['SCRIPT_NAME'];\r
18 $File3Name=str_replace($File1Name, null, $File2Name);\r
19 if ($File3Name=="functions.php"||$File3Name=="/functions.php") {\r
20         require('index.php');\r
21         exit(); }\r
22 function CheckFile($FileName) {\r
23 $File1Name = dirname($_SERVER['SCRIPT_NAME'])."/";\r
24 $File2Name = $_SERVER['SCRIPT_NAME'];\r
25 $File3Name=str_replace($File1Name, null, $File2Name);\r
26 if ($File3Name==$FileName||$File3Name=="/".$FileName) {\r
27         require('index.php');\r
28         exit(); }\r
29 return null; }\r
30 function CheckFiles($FileName) {\r
31 $File1Name = dirname($_SERVER['SCRIPT_NAME'])."/";\r
32 $File2Name = $_SERVER['SCRIPT_NAME'];\r
33 $File3Name=str_replace($File1Name, null, $File2Name);\r
34 if ($File3Name==$FileName||$File3Name=="/".$FileName) {\r
35         return true; } }\r
36 CheckFile("functions.php");\r
37 require($SettDir['misc']."compression.php");\r
38 if ($_GET['act']=="DeleteSession") {\r
39         @session_destroy(); }\r
40 if ($_GET['act']=="ResetSession") {\r
41         @session_unset(); }\r
42 if ($_GET['act']=="NewSessionID") {\r
43         @session_regenerate_id(); }\r
44 if ($_GET['act']=="PHPInfo") {\r
45         @phpinfo(); exit(); }\r
46 if ($_GET['act']=="phpinfo") {\r
47         @phpinfo(); exit(); }\r
48 if ($_GET['act']=="PHPCredits") {\r
49         @phpcredits(); exit(); }\r
50 if ($_GET['act']=="phpcredits") {\r
51         @phpcredits(); exit(); }\r
52 function ConnectMysql($sqlhost,$sqluser,$sqlpass,$sqldb) {\r
53 $StatSQL = @mysql_connect($sqlhost,$sqluser,$sqlpass);\r
54 $StatBase = @mysql_select_db($sqldb);\r
55 if (!$StatSQL) { return false; }\r
56 if (!$StatBase) { return false; }\r
57 return true; }\r
58         $Names['RS'] = "Renee Sabonis";\r
59 define("_renee_", $Names['RS']);\r
60 function change_title($new_title,$use_gzip,$gzip_type) {\r
61 global $Settings;\r
62 if($gzip_type!="gzip") { if($gzip_type!="deflate") { $gzip_type = "gzip"; } }\r
63 $output = @ob_get_clean();\r
64 $output = preg_replace("/<title>(.*?)<\/title>/", "<title>".$new_title."</title>", $output);\r
65 /* Change Some PHP Settings Fix the &PHPSESSID to &amp;PHPSESSID */\r
66 $SessName = @session_name();\r
67 $output = preg_replace("/&PHPSESSID/", "&amp;PHPSESSID", $output);\r
68 $qstrcode = htmlentities($Settings['qstr']);\r
69 $output = str_replace($Settings['qstr'].$SessName, $qstrcode.$SessName, $output);\r
70 if($use_gzip!=true) {\r
71         if($Settings['send_pagesize']==true) {\r
72         /*Header("Content-Length: " . strlen($output)); }*/\r
73         echo $output; }\r
74 if($use_gzip==true) {\r
75         if($gzip_type=="gzip") {\r
76         $goutput = gzencode($output); }\r
77         if($gzip_type=="deflate") {\r
78         $goutput = gzcompress($output); }\r
79 /*      if($Settings['send_pagesize']==true) {\r
80         Header("Content-Length: " . strlen(gzencode($goutput))); }*/\r
81         echo $goutput; } }\r
82 function fix_amp($use_gzip,$gzip_type) {\r
83 global $Settings;\r
84 if($gzip_type!="gzip") { if($gzip_type!="deflate") { $gzip_type = "gzip"; } }\r
85 $output = @ob_get_clean();\r
86 /* Change Some PHP Settings Fix the &PHPSESSID to &amp;PHPSESSID */\r
87 $SessName = @session_name();\r
88 $output = preg_replace("/&PHPSESSID/", "&amp;PHPSESSID", $output);\r
89 $qstrcode = htmlentities($Settings['qstr']);\r
90 $output = str_replace($Settings['qstr'].$SessName, $qstrcode.$SessName, $output);\r
91 if($use_gzip!=true) {\r
92         if($Settings['send_pagesize']==true) {\r
93         /*Header("Content-Length: " . strlen($output)); }*/\r
94         echo $output; }\r
95 if($use_gzip==true) {\r
96         if($gzip_type=="gzip") {\r
97         $goutput = gzencode($output); }\r
98         if($gzip_type=="deflate") {\r
99         $goutput = gzcompress($output); }\r
100 /*      if($Settings['send_pagesize']==true) {\r
101         Header("Content-Length: " . strlen(gzencode($goutput))); }*/\r
102         echo $goutput; } }\r
103 function gzip_page($use_gzip,$gzip_type) {\r
104 global $Settings;\r
105 if($gzip_type!="gzip") { if($gzip_type!="deflate") { $gzip_type = "gzip"; } }\r
106 $output = @ob_get_clean();\r
107         $Names['RJ'] = "RenĂ© Johnson";\r
108 define("_rene_", $Names['RJ']);\r
109 if($use_gzip!=true) {\r
110         if($Settings['send_pagesize']==true) {\r
111         /*Header("Content-Length: " . strlen($output)); }*/\r
112         echo $output; }\r
113 if($use_gzip==true) {\r
114         if($gzip_type=="gzip") {\r
115         $goutput = gzencode($output); }\r
116         if($gzip_type=="deflate") {\r
117         $goutput = gzcompress($output); }\r
118 /*      if($Settings['send_pagesize']==true) {\r
119         Header("Content-Length: " . strlen(gzencode($goutput))); }*/\r
120         echo $goutput; } }\r
121 $foo="bar"; $$foo="foo";\r
122 // SafeSQL Lite Source Code by Cool Dude 2k\r
123 function query($query_string,$query_vars) {\r
124    $query_array = array(array("%i","%I","%F","%S"),array("%d","%d","%f","%s"));\r
125    $query_string = str_replace($query_array[0], $query_array[1], $query_string);\r
126    if (get_magic_quotes_gpc()) {\r
127        $query_vars  = array_map("stripslashes", $query_vars); }\r
128    $query_vars = array_map("mysql_real_escape_string", $query_vars);\r
129    $query_val = $query_vars;\r
130 $query_num = count($query_val);\r
131 $query_i = 0;\r
132 while ($query_i < $query_num) {\r
133 $query_is = $query_i+1;\r
134 $query_val[$query_is] = $query_vars[$query_i];\r
135 ++$query_i; }\r
136    $query_val[0] = $query_string;\r
137    return call_user_func_array("sprintf",$query_val); }\r
138 function killbadvars($varname) {\r
139 $badphp1 = array('$'); $badphp2 = array(null);\r
140 $varname = str_replace($badphp1, $badphp2, $varname);\r
141 $varname = preg_replace("/(_SERVER|_ENV|_COOKIE|_SESSION)/i", null, $varname);\r
142 $varname = preg_replace("/(_GET|_POST|_FILES|_REQUEST|GLOBALS)/i", null, $varname);\r
143 $varname = preg_replace("/(HTTP_SERVER_VARS|HTTP_ENV_VARS)/i", null, $varname);\r
144 $varname = preg_replace("/(HTTP_COOKIE_VARS|HTTP_SESSION_VARS)/i", null, $varname);\r
145 $varname = preg_replace("/(HTTP_GET_VARS|HTTP_POST_VARS|HTTP_POST_FILES)/i", null, $varname);\r
146         return $varname; }\r
147 function text2icons($Text,$sqlt) {\r
148 global $Settings;\r
149 $renquery="SELECT * FROM ".$sqlt."smileys";\r
150 $renresult=mysql_query($renquery);\r
151 $rennum=mysql_num_rows($renresult);\r
152 $reni=0;\r
153 while ($reni < $rennum) {\r
154 $FileName=mysql_result($renresult,$reni,"FileName");\r
155 $SmileName=mysql_result($renresult,$reni,"SmileName");\r
156 $SmileText=mysql_result($renresult,$reni,"SmileText");\r
157 $SmileDirectory=mysql_result($renresult,$reni,"Directory");\r
158 $ShowSmile=mysql_result($renresult,$reni,"Show");\r
159 $Smile1 = array($SmileText);\r
160 $Smile2 = array('<img src="'.$SmileDirectory.''.$FileName.'" style="vertical-align: middle; border: 0px;" title="'.$SmileName.'" alt="'.$SmileName.'" />');\r
161 $Text=str_replace($Smile1, $Smile2, $Text);\r
162 ++$reni; } return $Text; }\r
163 function remove_spaces($Text) {\r
164 $Text = preg_replace("/(^\t+|\t+$)/","",$Text);\r
165 $Text = preg_replace("/(^\n+|\n+$)/","",$Text);\r
166 $Text = preg_replace("/(^\r+|\r+$)/","",$Text);\r
167 $Text = preg_replace("/(\r|\n|\t)+/"," ",$Text);\r
168 $Text = preg_replace("/\s\s+/"," ",$Text);\r
169 $Text = preg_replace("/(^\s+|\s+$)/","",$Text);\r
170 return $Text; }\r
171 function fixbamps($text) {\r
172 $fixamps1 = array("&amp;copy;","&amp;reg;","&amp;trade;","&amp;quot;","&amp;amp;","&amp;lt;","&amp;gt;","&amp;(a|e|i|o|u|y)acute;","&amp;(a|e|i|o|u)grave;","&amp;(a|e|i|o|u)circ;","&amp;(a|e|i|o|u|y)uml;","&amp;(a|o|n)tilde;","&amp;aring;","&amp;aelig;","&amp;ccedil;","&amp;eth;","&amp;oslash;","&amp;szlig;","&amp;thorn;");\r
173 $fixamps2 = array("&copy;","&reg;","&trade;","&quot;","&amp;","&lt;","&gt;","&\\1acute;","&\\1grave;","&\\1circ;","&\\1uml;","&\\1tilde;","&aring;","&aelig;","&ccedil;","&eth;","&oslash;","&szlig;","&thorn;");\r
174 $ampnum = count($fixamps1); $ampi=0;\r
175 while ($ampi < $ampnum) {\r
176 $text = preg_replace("/".$fixamps1[$ampi]."/i", $fixamps2[$ampi], $text);\r
177 ++$ampi; }\r
178 $text = preg_replace("/&amp;#(x[a-f0-9]+|[0-9]+);/i", "&#$1;", $text);\r
179 return $text; }\r
180 function getnextid($tablepre,$table) {\r
181    $getnextidq = query("SHOW TABLE STATUS LIKE '".$tablepre.$table."'", array());\r
182    $getnextidr = mysql_query($getnextidq);\r
183    $getnextid = mysql_fetch_assoc($getnextidr);\r
184    return $getnextid['Auto_increment'];\r
185    @mysql_free_result($getnextidr); }\r
186         $Names['RSA'] = "Rachel Sabonis";\r
187 define("_rachel_", $Names['RSA']);\r
188 function redirects($type,$url,$time=0) {\r
189 if($type!="location"&&\r
190         $type!="refresh") {\r
191         $type=="location"; }\r
192 if($type=="refresh") {\r
193 header("Refresh: ".$time."; URL=".$url); }\r
194 if($type=="location") {\r
195 header("Location: ".$url); }\r
196 return true; }\r
197 function xml_doc_start($ver,$encode,$retval=false) {\r
198         if($retval!=false&&$retval!=true) { $retval=false; }\r
199         if($retval==false) {\r
200         echo '<?xml version="'.$ver.'" encoding="'.$encode.'"?>'."\n"; }\r
201         if($retval==true) {\r
202         return '<?xml version="'.$ver.'" encoding="'.$encode.'"?>'."\n"; } }\r
203 function GMTimeChange($format,$timestamp,$offset,$minoffset=null,$dst=null) {\r
204 $TCHour = date("H",$timestamp);\r
205 $TCMinute = date("i",$timestamp);\r
206 $TCSecond = date("s",$timestamp);\r
207 $TCMonth = date("n",$timestamp);\r
208 $TCDay = date("d",$timestamp);\r
209 $TCYear = date("Y",$timestamp);\r
210 unset($dstake); $dstake = null;\r
211 if(!is_numeric($offset)) { $offset = 0; }\r
212 if(!is_numeric($minoffset)) { $minoffset = 0; }\r
213 if($dst!="on"&&$dst!="off") { $dst = "off"; }\r
214 if($dst=="on") { \r
215 if($dstake!="done") {\r
216 if($offset>=0) { $dstake = "done";\r
217         $offset = $offset-1; } }\r
218 if($dstake!="done") {\r
219 if($offset<0) { $dstake = "done";\r
220         $offset = $offset+1; } } }\r
221 $TCHour = $TCHour + $offset;\r
222 $TCMinute = $TCMinute + $minoffset;\r
223 return date($format,mktime($TCHour,$TCMinute,$TCSecond,$TCMonth,$TCDay,$TCYear)); }\r
224 function TimeChange($format,$timestamp,$offset,$minoffset=null,$dst=null) {\r
225 $TCHour = date("H",$timestamp);\r
226 $TCMinute = date("i",$timestamp);\r
227 $TCSecond = date("s",$timestamp);\r
228 $TCMonth = date("n",$timestamp);\r
229 $TCDay = date("d",$timestamp);\r
230 $TCYear = date("Y",$timestamp);\r
231 unset($dstake); $dstake = null;\r
232 if(!is_numeric($offset)) { $offset = 0; }\r
233 if(!is_numeric($minoffset)) { $minoffset = 0; }\r
234 if($dst!="on"&&$dst!="off") { $dst = "off"; }\r
235 if($dst=="on") { \r
236 if($dstake!="done") {\r
237 if($offset>=0) { $dstake = "done";\r
238         $offset = $offset-1; } }\r
239 if($dstake!="done") {\r
240 if($offset<0) { $dstake = "done";\r
241         $offset = $offset+1; } } }\r
242 $TCHour = $TCHour + $offset;\r
243 $TCMinute = $TCMinute + $minoffset;\r
244 return date($format,mktime($TCHour,$TCMinute,$TCSecond,$TCMonth,$TCDay,$TCYear)); }\r
245 function GMTimeStamp() {\r
246 $GMTHour = gmdate("H");\r
247 $GMTMinute = gmdate("i");\r
248 $GMTSecond = gmdate("s");\r
249 $GMTMonth = gmdate("n");\r
250 $GMTDay = gmdate("d");\r
251 $GMTYear = gmdate("Y");\r
252 return mktime($GMTHour,$GMTMinute,$GMTSecond,$GMTMonth,$GMTDay,$GMTYear); }\r
253 function GMTimeStampS() { return time() - date('Z', time()); }\r
254 function GMTimeGet($format,$offset,$minoffset=null,$dst=null) { \r
255         return GMTimeChange($format,GMTimeStamp(),$offset,$minoffset,$dst); }\r
256 function GMTimeGetS($format,$offset,$minoffset=null,$dst=null) {\r
257 unset($dstake); $dstake = null;\r
258 if(!is_numeric($offset)) { $offset = 0; }\r
259 if(!is_numeric($minoffset)) { $minoffset = 0; }\r
260 if($dst!="on"&&$dst!="off") { $dst = "off"; }\r
261 if($dst=="on") { \r
262 if($dstake!="done") {\r
263 if($offset>=0) { $dstake = "done";\r
264         $offset = $offset-1; } }\r
265 if($dstake!="done") {\r
266 if($offset<0) { $dstake = "done";\r
267         $offset = $offset+1; } } }\r
268 return date($format,mktime(gmdate('h')+$offset,gmdate('i')+$minoffset,gmdate('s'),gmdate('n'),gmdate('j'),gmdate('Y'))); }\r
269 function GetSeverZone() {\r
270 $TestHour1 = date("H");\r
271 @putenv("OTZ=".@getenv("TZ"));\r
272 @putenv("TZ=GMT");\r
273 $TestHour2 = date("H");\r
274 @putenv("TZ=".@getenv("OTZ"));\r
275 $TestHour3 = $TestHour1-$TestHour2;\r
276 return $TestHour3; }\r
277 function SeverOffSet() {\r
278 $TestHour1 = date("H");\r
279 $TestHour2 = gmdate("H");\r
280 $TestHour3 = $TestHour1-$TestHour2;\r
281 return $TestHour3; }\r
282 function SeverOffSetNew() {\r
283 return gmdate("g",mktime(0,date("Z"))); }\r
284 function gmtime() { return time() - (int) date('Z'); }\r
285 function file_get_source($filename,$return = FALSE) {\r
286 // Acts like highlight_file();\r
287 $phpsrc = file_get_contents($filename);\r
288 $phpsrcs = highlight_string($phpsrc,$return);\r
289 return $phpsrcs; }\r
290 function valid_get_source($filename) {\r
291 $phpsrcs = file_get_source($filename,TRUE);\r
292 // Change font tag to span tag for valid xhtml\r
293 $phpsrcs = preg_replace("/\<font color=\"(.*?)\"\>/i", "<span style=\"color: \\1;\">", $phpsrcs);\r
294 $phpsrcs = preg_replace("/\<\/font>/i", "</span>", $phpsrcs);\r
295 return $phpsrcs; }\r
296 function GetUserName($idu,$sqlt) {\r
297 $gunquery = query("select * from ".$sqlt."members where id=%i", array($idu));\r
298 $gunresult=mysql_query($gunquery);\r
299 $gunnum=mysql_num_rows($gunresult);\r
300 if($gunnum>0){\r
301 $UsersName=mysql_result($gunresult,$gunnum-1,"Name"); }\r
302 @mysql_free_result($gunresult);\r
303 return $UsersName; }\r
304 function hmac($data,$key,$hash='sha1',$blocksize=64) {\r
305   if (strlen($key)>$blocksize) {\r
306   $key=pack('H*',$hash($key)); }\r
307   $key=str_pad($key, $blocksize, chr(0x00));\r
308   $ipad=str_repeat(chr(0x36),$blocksize);\r
309   $opad=str_repeat(chr(0x5c),$blocksize);\r
310   return $hash(($key^$opad).pack('H*',$hash(($key^$ipad).$data))); }\r
311 function b64e_hmac($data,$key,$extdata,$hash='sha1',$blocksize=64) {\r
312         $extdata2 = hexdec($extdata); $key = $key.$extdata2;\r
313   return base64_encode(hmac($data,$key,$hash,$blocksize).$extdata); }\r
314 function salt_hmac($size1=4,$size2=6) {\r
315 $hprand = rand(4,6); $i = 0; $hpass = "";\r
316 while ($i < $hprand) {\r
317 $hspsrand = rand(1,2);\r
318 if($hspsrand!=1&&$hspsrand!=2) { $hspsrand=1; }\r
319 if($hspsrand==1) { $hpass .= chr(rand(48,57)); }\r
320 if($hspsrand==2) { $hpass .= chr(rand(65,70)); }\r
321 ++$i; } return $hpass; }\r
322 /* is_empty by M at http://us2.php.net/manual/en/function.empty.php#74093 */\r
323 function is_empty($var) {\r
324     if (((is_null($var) || rtrim($var) == "") &&\r
325                 $var !== false) || (is_array($var) && empty($var))) {\r
326         return true; } else {\r
327         return false; } }\r
328 function PassHash2x($Text) {\r
329 $Text = md5($Text);\r
330 $Text = sha1($Text);\r
331 return $Text; }\r
332 function PassHash2x2($data,$key,$extdata,$blocksize=64) {\r
333 $extdata2 = hexdec($extdata); $key = $key.$extdata2;\r
334 $Text = hmac($data,$key,"md5").$extdata; \r
335 $Text = hmac($Text,$key,"sha1").$extdata;\r
336 return base64_encode($Text); }\r
337 function cp($infile,$outfile,$mode="w") { \r
338    $contents = file_get_contents($infile);\r
339    $cpfp = fopen($outfile,$mode);\r
340    fwrite($cpfp, $contents);\r
341    fclose($cpfp);\r
342    return true; }\r
343 /* str_ireplace for PHP below ver. 5 // \r
344 // by RenĂ© Johnson - Cool Dude 2k    */\r
345 if(!function_exists('str_ireplace')) {\r
346 function str_ireplace($search,$replace,$subject) {\r
347 $search = preg_quote($search, "/");\r
348 return preg_replace("/".$search."/i", $replace, $subject); } }\r
349 $foobar="fubar"; $$foobar="foobar";\r
350 function dump_included_files() {        return var_dump(get_included_files()); }\r
351 function count_included_files() {       return count(get_included_files()); }\r
352 function dump_extensions() {    return var_dump(get_loaded_extensions()); }\r
353 function count_extensions() {   return count(get_loaded_extensions()); }\r
354 ?>\r