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() :將目錄指針重置目錄開始處

例子:

<?php
	header("Content-Type:text/html;charset=utf-8");
	$num=0;
	$dirname="phpMyAdmin";
	$dir_handle=opendir($dirname);
	echo '<table boder="0" align="center" widtn="600" cellspacing="0" cellpadding="0">';
	echo '<caption><h2>目錄'.$dirname.'</h2></caption>';
	echo '<tr align="left" bgcolor="#cccccc">';
	echo '<th>文件名</th><th>文件大小</th><th>文件類型</th><th>修改時間</th></tr>';

	while($file=readdir($dir_handle)){
		$dirFile=$dirname."/".$file;
		$bgcolor=$num++%2==0?'#ffffff':'#cccccc';
		echo '<tr bgcolor='.$bgcolor.'>';
		echo '<td>'.$file.'</td>';
		echo '<td>'.filesize($dirFile).'</td>';
		echo '<td>'.filetype($dirFile).'</td>';
		echo '<td>'.date("Y/m/d",filemtime($dirFile)).'</td>';
	}
	echo '</table>';
	closedir($dir_handle);

	echo '在<b>'.$dirname.'</b>目錄下子目錄和文件共有<b>'.$num.'</b>個';
?>

glob(): 檢索指定的目錄;

1.3 統計目錄大小

  1. disk_free_space(): 統計磁盤剩餘大小
  2. disk_total_spcae(): 統計磁盤大小

統計目錄大小(自定義函數)

<?php
	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 建立和刪除目錄

<?php
	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 複製目錄

<?php
	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");
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章