📄 function.php
字号:
<?php
/*
+-----------------------------------------------------------------------------+
| $Id: footer.php,v 2.00 2005/01/15 05:02:00 Bleakwind Exp $
| The function.php
| Copyright (c) 2003-2004 Weaverdream
| http://www.weaverdream.com
+-----------------------------------------------------------------------------+
*/
// Return file data
function read_file($filename, $mode="rb")
{
$handle = fopen($filename, $mode);
flock($handle, LOCK_EX);
$data = fread($handle, filesize($filename));
fclose($handle);
return $data;
}
// Put the data into file
function write_file($filename, $data, $mode="rb+")
{
touch($filename);
$handle = fopen($filename, $mode);
flock($handle, LOCK_EX);
$fettle = fwrite($handle, $data);
if($mode == "rb+") {ftruncate($handle, strlen($data));}
fclose($handle);
return $fettle;
}
// Return visitor's IP
function return_ip()
{
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = "Unknown";
}
return trim($ip);
}
// Return visitor's OS
function return_os()
{
$agent = $_SERVER["HTTP_USER_AGENT"];
if(preg_match('/Win/i', $agent) && preg_match('/NT 5.2/i', $agent)) {// Windows 2003
$os = "Win2003";
} elseif (preg_match('/Win/i', $agent) && preg_match('/NT 5.1/i', $agent)) {// Windows XP
$os = "WinXP";
} elseif (preg_match('/Win/i', $agent) && preg_match('/NT 5.0/i', $agent)) {// Windows 2000
$os = "Win2000";
} elseif (preg_match('/Win/i', $agent) && preg_match('/NT/i', $agent)) {// Windows NT
$os = "Win2000";
} elseif (preg_match('/Win/i', $agent) && preg_match('/4.90/i', $agent)) {// Windows ME
$os = "Win9X";
} elseif (preg_match('/Win/i', $agent) && preg_match('/98/i', $agent)) {// Windows 98
$os = "Win9X";
} elseif (preg_match('/Win/i', $agent) && preg_match('/95/i', $agent)) {// Windows 95
$os = "Win9X";
} elseif (preg_match('/Win/i', $agent) && preg_match('/32/i', $agent)) {// Windows 32
$os = "Win9X";
} elseif (preg_match('/Linux/i', $agent)) {// linux
$os = "Linux";
} elseif (preg_match('/BSD/i', $agent)) {// *BSD
$os = "Unix";
} elseif (preg_match('/Unix/i', $agent)) {// Unix
$os = "Unix";
} elseif (preg_match('/Sun/i', $agent)) {// SunOS
$os = "SunOS";
} elseif (preg_match('/Mac/i', $agent)) {// Macintosh
$os = "Macintosh";
} elseif (preg_match('/IBM/i', $agent)) {// IBMOS
$os = "IBMOS";
} else {// Other
$os = "Other";
}
return trim($os);
}
// Return visitor's browser
function return_browser()
{
$agent = $_SERVER["HTTP_USER_AGENT"];
if(preg_match('/Firefox/i',$agent)) {
$browser="Firefox";
} elseif (preg_match('/Netscape/i',$agent)) {
$browser="Netscape";
} elseif (preg_match('/NetCaptor/i',$agent)) {// has MSIE
$browser="NetCaptor";
} elseif (preg_match('/MSN/i',$agent)) {// has MSIE
$browser="MSN Explorer";
} elseif (preg_match('/Opera/i',$agent)) {// has MSIE
$browser="Opera";
} elseif (preg_match('/AOL/i',$agent)) {
$browser="AOL";
} elseif (preg_match('/JAVA/i',$agent)) {
$browser="JAVA";
} elseif (preg_match('/MacWeb/i',$agent)) {
$browser="MacWeb";
} elseif (preg_match("/MSIE/i", $agent)) {
$str = explode(";",$agent);
$str = $str['1'];
$str = explode(" ",$str);
$browser_ver = $str['2'];
if($browser_ver == "6.0") {
$browser = "IE6";
} else {
$browser = "IE5";
}
} else {
$browser = "Other";
}
return trim($browser);
}
// Return the the search
function return_search($referrer)
{
global $SEARCHLIST,$LANGUAGE;
$search = array();
$quondam = array("/",".","?");
$current = array("\/","\.","\?");
reset($SEARCHLIST);
while (list($key1, $value1) = each ($SEARCHLIST)) {
while (list($key2, $value2) = each ($value1['search'])) {
$pattern = str_replace($quondam,$current,$value2[0]);
if(preg_match( "/^".$pattern."/i", $referrer)) {
preg_match("/".$value2[1]."([^".$value2[2]."]+)/i", $referrer, $matches);
$search['name'] = trim($key1);
$search['keyword'] = iconv($value2[3], $LANGUAGE['charset'], trim(urldecode($matches[1])));
break;
}
}
}
return $search;
}
// Formatted the time difference from time to now
function time_margin($time, $now, $multiple)
{
$margin = trim($now) - trim($time);
$number = ceil($margin/$multiple);
return $number;
}
// Read dir to list
function return_dir($directory)
{
$file_list = array();
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if(($file != ".")&&($file != "..")) {
$file_list[] = $file;
}
}
closedir($handle);
}
sort($file_list);
return $file_list;
}
// Encrypt the string
function str_encrypt($str,$len = 40)
{
$encrypt = "";
$str = sha1($str);
$str = substr($str, 0, 10).substr($str, -10);
$str = sha1($str);
for($i=0;$i<$len;$i++){
$encrypt .= $str{$i%40};
}
return $encrypt;
}
// Resize a image
function resize_image($filename, $width, $height="")
{
$extend_name = substr($filename,-3);
if($extend_name == "png") {
$str_createfrom = "imagecreatefrompng";
} elseif ($extend_name == "jpg") {
$str_createfrom = "imagecreatefromjpeg";
} elseif ($extend_name == "gif") {
$str_createfrom = "imagecreatefromgif";
} elseif ($extend_name == "bmp") {
$str_createfrom = "imagecreatefromwbmp";
}
list($width_get, $height_get, $type_get, $attr_get) = getimagesize($filename);
if(empty($height)) { $height = (int)(($width / $width_get) * $height_get); }
$img = imagecreatetruecolor($width, $height);
$image_from = $str_createfrom($filename);
imagecopyresampled($img, $image_from, 0, 0, 0, 0, $width, $height, $width_get, $height_get);
return $img;
}
// Return a 16 color to a 10 color
function color_hexdec($color)
{
if(!preg_match("/^[0-9a-z]{6,6}$/i",$color)) { $color = "000000"; }
$color_array['0'] = hexdec(substr($color,0,2));
$color_array['1'] = hexdec(substr($color,2,2));
$color_array['2'] = hexdec(substr($color,4,2));
return $color_array;
}
// String intercept By Bleakwind At http://www.weaverdream.com
// utf-8:$byte=3 | gb2312:$byte=2 | big5:$byte=2
function bite_str($string, $start, $len, $byte=3)
{
$str = "";
$count = 1;
$str_len = strlen($string);
for ($i=0; $i<$str_len; $i++) {
if (($count+1-$start)>$len) {
$str .= "...";
break;
} elseif ((ord(substr($string,$i,1)) <= 128) && ($count < $start)) {
$count++;
} elseif ((ord(substr($string,$i,1)) > 128) && ($count < $start)) {
$count = $count+2;
$i = $i+$byte-1;
} elseif ((ord(substr($string,$i,1)) <= 128) && ($count >= $start)) {
$str .= substr($string,$i,1);
$count++;
} elseif ((ord(substr($string,$i,1)) > 128) && ($count >= $start)) {
$str .= substr($string,$i,$byte);
$count = $count+2;
$i = $i+$byte-1;
}
}
return $str;
}
// Encode a string
function str_encode($str)
{
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
$str = htmlspecialchars($str);
$str = str_replace("|","|",$str);
$str = str_replace(".",".",$str);
$str = str_replace("\r","",$str);
$str = str_replace("\n","<br>",$str);
$str = str_replace(" "," ",$str);
$str = str_replace("\\","\",$str);
return $str;
}
// Decode a string
function str_decode($str)
{
$str = str_replace("&","&",$str);
$str = str_replace(""","\"",$str);
$str = str_replace("'","'",$str);
$str = str_replace("<","<",$str);
$str = str_replace(">",">",$str);
$str = str_replace("|","|",$str);
$str = str_replace(".",".",$str);
$str = str_replace("<br>","\n",$str);
$str = str_replace(" "," ",$str);
$str = str_replace("\","\\",$str);
return $str;
}
// Decode a string
function str_decode_str($str)
{
$str = str_replace("&","&",$str);
$str = str_replace(""","\"",$str);
$str = str_replace("'","'",$str);
$str = str_replace("|","|",$str);
$str = str_replace(".",".",$str);
$str = str_replace("<br>","\n",$str);
$str = str_replace(" "," ",$str);
$str = str_replace("\","\\",$str);
return $str;
}
// Decode a string for title
function str_decode_title($str)
{
$str = str_replace("<br>","",$str);
return $str;
}
// Check username
function check_username($str)
{
global $LANGUAGE;
if(!preg_match("/^[0-9a-z_]{3,60}$/",$str)) {
header("location:prompt.php?act=failed&mes=".htmlentities(urlencode($LANGUAGE['warning_username'])));
exit;
} else {
return $str;
}
}
// Check password
function check_password($str)
{
global $LANGUAGE;
if(!preg_match("/^[0-9a-z_]{3,60}$/i",$str)) {
header("location:prompt.php?act=failed&mes=".htmlentities(urlencode($LANGUAGE['warning_password'])));
exit;
} else {
return $str;
}
}
// Invert IP to address
function invert_ip($ip)
{
global $SETTING;
$ip_part = explode(".",trim($ip));
$ip_part[0] = sprintf("%03d", $ip_part[0]);
$file_list = array();
if ($handle = opendir($SETTING['dir_ipdata'])) {
while (false !== ($filename = readdir($handle))) {
$filename_part = explode(".",$filename);
if(trim($filename_part[0]) == trim($ip_part[0])) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -