OSDN Git Service

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