function is_email($user_email){ $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i"; if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false) { if (preg_match($chars, $user_email)) { return true; } else { return false; } } else { return false; }}function is_time($time){ $pattern = '/[\d]{4}-[\d]{1,2}-[\d]{1,2}\s[\d]{1,2}:[\d]{1,2}:[\d]{1,2}/'; return preg_match($pattern, $time);}function sub_str($str, $length = 0, $append = true){ $str = trim($str); $strlength = strlen($str); if ($length == 0 || $length >= $strlength) { return $str; } elseif ($length < 0) { $length = $strlength + $length; if ($length < 0) { $length = $strlength; } } if (function_exists('mb_substr')) { $newstr = mb_substr($str, 0, $length, EC_CHARSET); } elseif (function_exists('iconv_substr')) { $newstr = iconv_substr($str, 0, $length, EC_CHARSET); } else { //$newstr = trim_right(substr($str, 0, $length)); $newstr = substr($str, 0, $length); } if ($append && $str != $newstr) { $newstr .= '...'; } return $newstr;}function real_ip(){ static $realip = NULL; if ($realip !== NULL) { return $realip; } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); foreach ($arr AS $ip) { $ip = trim($ip); if ($ip != 'unknown') { $realip = $ip; break; } } } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { if (isset($_SERVER['REMOTE_ADDR'])) { $realip = $_SERVER['REMOTE_ADDR']; } else { $realip = '0.0.0.0'; } } } else { if (getenv('HTTP_X_FORWARDED_FOR')) { $realip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_CLIENT_IP')) { $realip = getenv('HTTP_CLIENT_IP'); } else { $realip = getenv('REMOTE_ADDR'); } } preg_match("/[\d\.]{7,15}/", $realip, $onlineip); $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; return $realip;}function str_len($str){ $length = strlen(preg_replace('/[\x00-\x7F]/', '', $str)); if ($length) { return strlen($str) - $length + intval($length / 3) * 2; } else { return strlen($str); }}function get_crlf(){ if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win')) { $the_crlf = '\r\n'; } elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac')) { $the_crlf = '\r'; // for old MAC OS } else { $the_crlf = '\n'; } return $the_crlf;}function gd_version(){ include_once(ROOT_PATH . 'includes/cls_image.php'); return cls_image::gd_version();}function make_dir($folder){ $reval = false; if (!file_exists($folder)) { @umask(0); preg_match_all('/([^\/]*)\/?/i', $folder, $atmp); $base = ($atmp[0][0] == '/') ? '/' : ''; foreach ($atmp[1] AS $val) { if ('' != $val) { $base .= $val; if ('..' == $val || '.' == $val) { $base .= '/'; continue; } } else { continue; } $base .= '/'; if (!file_exists($base)) { if (@mkdir(rtrim($base, '/'), 0777)) { @chmod($base, 0777); $reval = true; } } } } else { $reval = is_dir($folder); } clearstatcache(); return $reval;}function gzip_enabled(){ static $enabled_gzip = NULL; if ($enabled_gzip === NULL) { $enabled_gzip = ($GLOBALS['_CFG']['enable_gzip'] && function_exists('ob_gzhandler')); } return $enabled_gzip;}function make_semiangle($str){ $arr = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T', 'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 'Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', '(' => '(', ')' => ')', '〔' => '[', '〕' => ']', '【' => '[', '】' => ']', '〖' => '[', '〗' => ']', '“' => '[', '”' => ']', '‘' => '[', '’' => ']', '{' => '{', '}' => '}', '《' => '<', '》' => '>', '%' => '%', '+' => '+', '—' => '-', '-' => '-', '~' => '-', ':' => ':', '。' => '.', '、' => ',', ',' => '.', '、' => '.', ';' => ',', '?' => '?', '!' => '!', '…' => '-', '‖' => '|', '”' => '"', '’' => '`', '‘' => '`', '|' => '|', '〃' => '"', ' ' => ' '); return strtr($str, $arr);}function check_file_type($filename, $realname = '', $limit_ext_types = ''){ if ($realname) { $extname = strtolower(substr($realname, strrpos($realname, '.') + 1)); } else { $extname = strtolower(substr($filename, strrpos($filename, '.') + 1)); } if ($limit_ext_types && stristr($limit_ext_types, '|' . $extname . '|') === false) { return ''; } $str = $format = ''; $file = @fopen($filename, 'rb'); if ($file) { $str = @fread($file, 0x400); // 读取前 1024 个字节 @fclose($file); } else { if (stristr($filename, ROOT_PATH) === false) { if ($extname == 'jpg' || $extname == 'jpeg' || $extname == 'gif' || $extname == 'png' || $extname == 'doc' || $extname == 'xls' || $extname == 'txt' || $extname == 'zip' || $extname == 'rar' || $extname == 'ppt' || $extname == 'pdf' || $extname == 'rm' || $extname == 'mid' || $extname == 'wav' || $extname == 'bmp' || $extname == 'swf' || $extname == 'chm' || $extname == 'sql' || $extname == 'cert') { $format = $extname; } } else { return ''; } } if ($format == '' && strlen($str) >= 2 ) { if (substr($str, 0, 4) == 'MThd' && $extname != 'txt') { $format = 'mid'; } elseif (substr($str, 0, 4) == 'RIFF' && $extname == 'wav') { $format = 'wav'; } elseif (substr($str ,0, 3) == "\xFF\xD8\xFF") { $format = 'jpg'; } elseif (substr($str ,0, 4) == 'GIF8' && $extname != 'txt') { $format = 'gif'; } elseif (substr($str ,0, 8) == "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A") { $format = 'png'; } elseif (substr($str ,0, 2) == 'BM' && $extname != 'txt') { $format = 'bmp'; } elseif ((substr($str ,0, 3) == 'CWS' || substr($str ,0, 3) == 'FWS') && $extname != 'txt') { $format = 'swf'; } elseif (substr($str ,0, 4) == "\xD0\xCF\x11\xE0") { // D0CF11E == DOCFILE == Microsoft Office Document if (substr($str,0x200,4) == "\xEC\xA5\xC1\x00" || $extname == 'doc') { $format = 'doc'; } elseif (substr($str,0x200,2) == "\x09\x08" || $extname == 'xls') { $format = 'xls'; } elseif (substr($str,0x200,4) == "\xFD\xFF\xFF\xFF" || $extname == 'ppt') { $format = 'ppt'; } } elseif (substr($str ,0, 4) == "PK\x03\x04") { $format = 'zip'; } elseif (substr($str ,0, 4) == 'Rar!' && $extname != 'txt') { $format = 'rar'; } elseif (substr($str ,0, 4) == "\x25PDF") { $format = 'pdf'; } elseif (substr($str ,0, 3) == "\x30\x82\x0A") { $format = 'cert'; } elseif (substr($str ,0, 4) == 'ITSF' && $extname != 'txt') { $format = 'chm'; } elseif (substr($str ,0, 4) == "\x2ERMF") { $format = 'rm'; } elseif ($extname == 'sql') { $format = 'sql'; } elseif ($extname == 'txt') { $format = 'txt'; } } if ($limit_ext_types && stristr($limit_ext_types, '|' . $format . '|') === false) { $format = ''; } return $format;}function mysql_like_quote($str){ return strtr($str, array("\\\\" => "\\\\\\\\", '_' => '\_', '%' => '\%', "\'" => "\\\\\'"));}function real_server_ip(){ static $serverip = NULL; if ($serverip !== NULL) { return $serverip; } if (isset($_SERVER)) { if (isset($_SERVER['SERVER_ADDR'])) { $serverip = $_SERVER['SERVER_ADDR']; } else { $serverip = '0.0.0.0'; } } else { $serverip = getenv('SERVER_ADDR'); } return $serverip;}function trim_right($str){ $len = strlen($str); if ($len == 0 || ord($str{$len-1}) < 127) { return $str; } if (ord($str{$len-1}) >= 192) { return substr($str, 0, $len-1); } $r_len = strlen(rtrim($str, "\x80..\xBF")); if ($r_len == 0 || ord($str{$r_len-1}) < 127) { return sub_str($str, 0, $r_len); } $as_num = ord(~$str{$r_len -1}); if ($as_num > (1<<(6 + $r_len - $len))) { return $str; } else { return substr($str, 0, $r_len-1); }}function move_upload_file($file_name, $target_name = ''){ if (function_exists("move_uploaded_file")) { if (move_uploaded_file($file_name, $target_name)) { @chmod($target_name,0755); return true; } else if (copy($file_name, $target_name)) { @chmod($target_name,0755); return true; } } elseif (copy($file_name, $target_name)) { @chmod($target_name,0755); return true; } return false;}function to_utf8_iconv($str){ if (EC_CHARSET != 'utf-8') { if (is_string($str)) { return ecs_iconv(EC_CHARSET, 'utf-8', $str); } elseif (is_array($str)) { foreach ($str as $key => $value) { $str[$key] = to_utf8_iconv($value); } return $str; } elseif (is_object($str)) { foreach ($str as $key => $value) { $str->$key = to_utf8_iconv($value); } return $str; } else { return $str; } } return $str;}function get_file_suffix($file_name, $allow_type = array()){ $file_suffix = strtolower(array_pop(explode('.', $file_name))); if (empty($allow_type)) { return $file_suffix; } else { if (in_array($file_suffix, $allow_type)) { return true; } else { return false; } }}