php函数汇总(不断更新中...)
2011.06.13:
/*
获取客户端ip地址
*/
function clientip() {
if (getenv('HTTP_CLIENT_IP')){
$ip = getenv('HTTP_CLIENT_IP');
}elseif(getenv('HTTP_X_FORWARDED_FOR')){
$ip = getenv('HTTP_X_FORWARDED_FOR');
}elseif(getenv('REMOTE_ADDR')){
$ip = getenv('REMOTE_ADDR');
}else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
/*
取得随机字符串
参数:(int)$len 生成字符串长度,(int)mode 生成模式
*/
function random($len = 32,$mode = 0) {
switch ($mode) {
case '1':
$str = '1234567890';
break;
case '2':
$str = 'abcdefghijklmnopqrstuvwxyz';
break;
case '3':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case '4':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
break;
default:
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
break;
}
$result = '';
$l = strlen($str) - 1;
for($i = 0;$i < $len;$i ++){
$num = rand(0, $l);
$result .= $str[$num];
}
return $result;
}
/*
创建文件夹
参数:(str)$dirname 文件夹路径
*/
function createdir($dirname, $mode= 0777 ,$index = 1) {
$res = true;
if (is_null($dirname) || $dirname == "") {
$res = false;
}
elseif (!is_dir($dirname)) {
$res = mkdir($dirname, $mode);
$index && @touch($dirname.'/index.html');
}
return $res;
}
/*
创建多级目录文件夹
参数:(str)$dirname 文件夹路径
*/
function createdirs($dirname, $mode= 0777 ,$index = 1) {
$arr = explode('/', $dirname);
$aimdir = '';
foreach ($arr as $str) {
$aimdir .= $str . '/';
if (!file_exists($aimdir)) {
mkdir($aimdir);
$index && @touch($aimdir.'/index.html');
}
}
}
/*
删除目录
参数:(str)$dirname 文件夹路径
*/
function deletedirs($dirname) {
if (file_exists($dirname) and is_dir($dirname)) {
if (!$dirhandle = opendir($dirname))
return false;
while (($file = readdir($dirhandle)) !== false) {
if ($file == "." or $file == "..") continue;
$file = $dirname . DIRECTORY_SEPARATOR . $file; //表示$file是$dir的子目录
if (is_dir($file)) {
deletedirs($file);
} else {
unlink($file);
}
}
closedir($dirhandle);
return rmdir($dirname);
}
else{
return false;
}
}
/*
文件单位转换
参数:(int)$size 文件大小Byte
*/
function getrealsize($size) {
$res = '';
$kb = 1024;
$mb = $kb * 1024;
$gb = $mb * 1024;
$tb = $gb * 1024;
if ($size < $kb) {
$res = $size . "B";
}
elseif ($size >= $kb and $size < $mb){
$res = round($size / $kb, 2) . "KB";
}
elseif ($size >= $mb and $size < $gb) {
$res = round($size / $mb, 2) . "MB";
}
elseif ($size >= $gb and $size < $tb) {
$res = round($size / $gb, 2) . "GB";
}
elseif ($size >= $tb) {
$res = round($size / $tb, 2) . "TB";
}
return $res;
}