PHP文件管理(2)

PHP文件管理(2)


1. 目录的基本操作

1.1 解析目录的路径

相对路径:$path=“file/txt”
绝对路径:$path=“C:/Appserv/www/index.php”

函数

1.basename($path, “php”) : 返回路径的中文件名部分

2.dirname($path) : 返回全路径的目录名

3.s=pathinfo($path) :返回数组s[dirname],s[basename];s[extension]

1.2 遍历目录

函数

1.opendir($dirname):打开目录,返回目录句柄
2.readdir() : 接受opendir()返回目录句柄为参数,返回当前文件指针所指的文件名。
3.closedir() : 以opendir()返回的目录句柄为参数,关闭目录
4.rewinddir() :将目录指针重置目录开始处

例子:


	header("Content-Type:text/html;charset=utf-8");
	$num=0;
	$dirname="phpMyAdmin";
	$dir_handle=opendir($dirname);
	echo '';echo'';echo'';echo'';while($file=readdir($dir_handle)){$dirFile=$dirname."/".$file;$bgcolor=$num++%2==0?'#ffffff':'#cccccc';echo'';echo'';echo'';echo'';echo'';}echo'

目录'.$dirname.'

文件名文件大小文件类型修改时间
'.$file.' '.filesize($dirFile).' '.filetype($dirFile).' '.date("Y/m/d",filemtime($dirFile)).'
'
; closedir($dir_handle); echo '在'.$dirname.'目录下子目录和文件共有'
.$num.'个'; ?>

glob(): 检索指定的目录;

1.3 统计目录大小

  1. disk_free_space(): 统计磁盘剩余大小
  2. disk_total_spcae(): 统计磁盘大小

统计目录大小(自定义函数)


	function dirSize($directory){
		$dir_size=0;
		if($dir_handle=@opendir($directory)){
			while($filename=readdir($dir_handle)){
			if($filename!="."&&$filename!=".."){
				$subFile=$directory."/".$filename;
				if(is_dir($subFile));
					$dir_size+=dirSize($subFile);
				if(is_file($subFile)){
					$dir_size+=filesize($subFile);
				}
			}

		}
			closedir($dir_handle);
			return $dir_size;
		}
	}
	$dir_size=dirSize("phpMyAdmin");
	echo round($dir_size/pow(1024,1),2)."KB";
?>

可以用exec(),system()调用“du”来计算目录大小,但有安全问题;

1.4 建立和删除目录


	function delDir($directory){
		if(file_exits($directory)){
			if($dir_handle=@opendir($directory)){
				while($filename=readdir($dir_handle)){
					if($filename!="."&&$filename!=".."){
						$subFile=$directory."/".$filename;
						if(is_dir($subFile))
							delDir($subFile);
						if(is_file($subFile))
							unlink($subFile);
					}
				}
				closedir($dir_handle);
				rmdir($directory);
			}
		}
	}
	delDir("phpMyAdmin");
?>

1.5 复制目录


	function copyDir($dirSrc,$dirTo){
		if(is_file($dirTo)){
			echo "目标不是目录不能创建";
			return;
		}
		if(file_exists($dirTo)){
			mkdir($dirTo);
		}
		if($dir_handle=@opendir($dirSrc)){
			while($filename=readdir($dir_handle)){
				if($filename!="."&&$filename!=".."){
					$subSrcFile=$dirSrc."/".$filename;
					$subToFile=$dirTo."/".$filename;

					if(is_dir($subSrcFile))
						copyDir($subSrcFile,$subToFile);
					if(is_file($subSrcFile))
						copy($subSrcFile,$subToFile);
				}
			}
			closedir($dir_handle);
		}
	}
	copyDir("phpMyAdmin","D:/admin");
?>

你可能感兴趣的:(php,文件处理,php)