如何用PHP遍历文件数目 或删除目录下的所有文件?

先说一下基础知识:php

文件位置以下图所示:数组

一、判断是文件仍是目录服务器

var_dump(filetype("./aa/bb/cc.txt"));

  输出: string(4) "file" url

var_dump(filetype("./aa")); 

    输出: string(3) "dir"spa

 二、判断是不是文件(是返回ture)blog

var_dump(is_file("./aa"));  

     输出bool(false)资源

三、判断是不是目录(是返回ture)get

var_dump(is_dir("./aa"));

  输出: bool(true)string

四、文件的访问、建立与修改时间it

echo date("Y-m-d H:i:s",fileatime("./aa")); //文件的上次访问时间

filectime("./aa.txt"); //文件的建立时间

echo date("Y-m-d H:i:s",filemtime("./aa.txt")); //文件的修改时间

 五、获取文件大小

filesize("./aa.txt"); 

  六、判断文件是否存在

file_exists("./aa.txt")

  七、服务器的根目录

echo $_SERVER['DOCUMENT_ROOT'];

  输出:D:/phpStudy/WWW

注意:/表明根,在网页里面表明www目录,在PHP里面表明磁盘根

八、路径

echo basename("./aa/bb/cc.txt"); //获取路径中的文件名
echo dirname("../0508/DB.class.php"); //获取路径中的文件夹目录
var_dump(pathinfo("../0508/DB.class.php")); //获取路径信息
echo realpath("./aa/bb/cc.txt"); //将相对路径转化成绝对路径

  依次输出:

cc.txt

../0508

array(4) { ["dirname"]=> string(7) "../0508" ["basename"]=> string(12) "DB.class.php" ["extension"]=> string(3) "php" ["filename"]=> string(8) "DB.class" }
D:\phpStudy\WWW\2017-05\0519\aa\bb\cc.txt

9.目录操做

mkdir("./aa"); //建立目录
rmdir("./aa"); //删除目录,目录必须为空
rename("./test","../ceshi"); //移动目录

  第一种遍历目录:

var_dump(glob("./aa/bb/*.txt")); //获取目录下全部文件

  输出:

array(6) {
  [0]=>
 string(14) "./aa/bb/cc.txt"  [1]=>  string(14) "./aa/bb/dd.txt"  [2]=>  string(14) "./aa/bb/ee.txt"  [3]=>  string(14) "./aa/bb/ff.txt"  [4]=>  string(14) "./aa/bb/gg.txt"  [5]=>  string(14) "./aa/bb/hh.txt" }

第二种遍历目录:(重要)

//打开目录,返回目录资源
$dname = "./aa/bb";
$dir = opendir($dname);

//从目录资源里面读文件,每次读一个
while($fname = readdir($dir))
{
	echo $dname."/".$fname."<br>";
}

//关闭目录资源
closedir($dir);

  

输出:

./aa/bb/.
./aa/bb/..
./aa/bb/cc.txt
./aa/bb/dd.txt
./aa/bb/ee.txt
./aa/bb/ff.txt
./aa/bb/gg.txt
./aa/bb/hh.txt

十、文件总体操做

touch("./aa.txt"); //建立文件
copy("./aa.txt","../aa.txt"); //复制文件
unlink("./aa.txt"); //删除文件

十一、文件内容操做

echo file_get_contents("http://www.baidu.com"); //读取文件
file_put_contents("./aa/bb/hh.txt","hello"); //写内容
readfile("./11.txt"); //读取并输出
var_dump(file("11.txt")); //读取文件内容,返回数组,每行是一个元素

  

//打开文件
$f = fopen("./11.txt","a");
//打开文件并写入
fwrite($f,"wwwww");

//关闭文件
fclose($f);

  其中:r只读;r+读写;w写清空;w+读写;a写入文件末尾;a+读写;x建立并以写入打开;x+建立并以读写打开;加一个b表明可操做二进制文件(建议加)

 

利用遍从来计算文件夹下全部的个数

<?php

echo fileCount("./qiyezhan");

function fileCount($fname)
{
	//该文件夹下全部文件数量
	$sum = 0;
	//判断给的是否是文件夹
	if(is_dir($fname))
	{
		//打开文件夹
		$dir = opendir($fname);
		
		while($wenjian = readdir($dir))
		{
			if($wenjian!="." &&$wenjian!="..")
			{
				//文件的完整路径
				$furl = $fname."/".$wenjian;
				if(is_file($furl))
				{
					$sum++;
				}
				else if(is_dir($furl))
				{
					//获取该文件夹下文件数量,累加
					$sum = $sum + fileCount($furl);
				}
			}
			
		}
		
		//关闭文件夹
		closedir($dir);
		return $sum;
	}
	else
	{
		echo "给的文件夹不对";
	}
}

?>

  利用遍历删除所有文件

<?php
ShanChu("./qiyezhan");
function ShanChu($fname)
{
	if(is_dir($fname))
	{
		//在删除以前,把里面的文件所有删掉
		$dir = opendir($fname);
		while($dname = readdir($dir))
		{
                         //必须加这一项,否则可能会将整个磁盘给删掉
			if($dname!="." && $dname!="..")
			{
				$durl = $fname."/".$dname;
				if(is_file($durl))
				{
					unlink($durl);
				}
				else
				{
					ShanChu($durl);
				}
			}
		}
		closedir($dir);
		//删除该文件夹
		rmdir($fname);	
	}
	else
	{
		//若是是文件,直接删掉
		unlink($fname);
	}
}


?>
相关文章
相关标签/搜索