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;
}
}
}
php的一些常用自定义函数
最新推荐文章于 2021-04-07 01:06:22 发布