<?php文件:文件夹和文件,文件夹又可以称为目录
判断文件类型:
var_dump(filetype("./test"));//获取文件类型,如果是文件返回file,如果是目录返回dir,可以用来判断文件文件夹
var_dump(is_dir("./test"));//判断给定的路径是不是目录
var_dump(is_file("./aa.txt"));//判断给定的路径是不是文件
判断文件属性:
echo date("y-m-d H:i:s",fileatime("./aa.txt"));//获取文件的上次访问时间
echo date("y-m-d H:i:s",filectime("./aa.txt"));//获取文件的创建时间
echo date("y-m-d H:i:s",filemtime("./aa.txt"));//获取文件的修改时间
echo date("y-m-d H:i:s");
echo filesize("./aa.txt");//获取文件大小
echo file_exists("./aa.txt");//判断文件是否存在,存在返回1,不存在返回0
文件路径
1.当前目录:./或者不写
2.上级目录:../
3.下级目录:文件夹名/
4.根目录:/
根目录/有两层意思:如果是在php程序中代表:硬盘根目录
如果是在网页里代表:服务器的根目录(localhost里面www)
做文件上传(头像,图片),保存在数据库的路径一定要写绝对路径
echo $_SERVER[‘DOCUMENT_ROOT‘];//取服务器www的根目录,这个和网页的目录拼接就可以变为这个标签的绝对目录
echo basename("./aa.txt");//从路径中获取文件名带后缀
echo basename("aa.txt",".txt");//返回没有后缀的文件名
echo dirname("./test/bb.txt");//返回路径中的目录
var_dump(pathinfo("./test/bb.txt"));//以数组形式返回文件信息
echo realpath("./test/bb.txt");//将相对路径转为绝对路径
目录的操作
var_dump(glob("./test/*"));//返回目录下所有的文件,*代表全部
var_dump(glob("./test/1/*.txt"));//根据后缀筛选
递归:遍历目录下文件的数量;
echo shuliang("./test"); function shuliang($filename)//有返回值所以需要一个参数 { if(is_dir($filename))//判断文件是不是目录,是继续不是进else if() { $attr=(glob($filename."/*"));//走到这里证明是dir返回目录下所有文件以二维数组方式 $sl=0; foreach($attr as $v)//遍历二维数组 { if(is_dir($v))//再次判断是不是目录; { $sl=$sl+shuliang($v);是目录调用自身并且将值+$sl } else { $sl++;//不是目录是文件的话文件数量+1 } } return $sl;//循环结束返回$sl } else if(is_file($filename))//不是目录是文件直接返回1,因为输入的路径就是一个文件的路径所以只有一个文件所以返回1当前的代码是这个意思 { return 1; } else { return 0; } }
遍历目录第二种方式:
$dir=opendir("./test");//开启目录资源,有开启就有关闭,所以后面一定要记得加上关闭目录资源
echo readdir($dir),"<br />";//读文件,.代表当前目录
echo readdir($dir),"<br />";//..上级目录
echo readdir($dir),"<br />";//第三个开始才是
while循环
while($v=readdir($dir))//
{
if($v=="."||$v=="..")//剃掉根目录和上级目录
{
}
else
{
echo $v."<br />";
}
}
rewinddir();//重置目录资源的指针
关闭目录 资源
closedir($dir);关闭目录资源
?>