文件:文件和文件夹(目录)
文件属性
echo filetype("./aa.txt");//获取文件类型;如果是文件返回file;如果是目录返回dir echo is_dir("./test"); //判断给的路径是不是目录,返回bool型 is_file("./aa.txt"); //判断给定的路径是不是文件,返回bool型 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 filesize("./aa.txt"); //获取文件大小 echo file_exists("./aa.txt"); //判断文件是否存在,返回bool型
目录的基本操作
一、文件路径:
1.当前目录:./或不写
2.上级目录:../
3.下级目录:文件夹名/
4.根目录:/
4.1根目录/有两层意思:如果/是在php程序中,代表“硬盘目录”;如果/是在网页程序里,代表“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"); //将相对路径转为绝对路径
二、遍历目录
遍历目录方式一:glob()
var_dump(glob("./cutfruit/*")); //返回cutfruit文件夹下所有的文件,数组形式 var_dump(glob("./cutfruit/*.js")); //返回ueditor文件夹下js文件(筛选)
练习一:获取文件夹下所有文件个数
//获取文件夹下所有文件个数 echo Shuliang("./cutfruit"); function Shuliang($filename) { if(is_dir($filename)) { $attr=glob($filename."/*"); $sl=0; foreach($attr as $v) { if(is_dir($v)) { $sl=$sl+Shuliang($v); } else { $sl++; } } return $sl; } else if(is_file($filename)) { return 1; } else { return 0; } }
练习二:获取文件夹下所有文件的大小总和
//获取文件夹下所有文件的大小总和 echo Size("../0521"); function Size($filename) { if(is_dir($filename)) { $attr=glob($filename."/*"); $size=0; foreach($attr as $v) { if(is_dir($v)) { $size=$size+Size($v); } else { $size=$size+filesize($v); } } return $size; } else if(is_file($filename)) { return filesize($filename); } else { return 0; } }
遍历目录方式二:opendir()打开指定的目录
readdir()读取指定的目录
rewinddir()重置目录指针,即将目录指针重置目录的开始处
closedir()关闭目录
//打开目录资源 $dir=opendir("./cutfruit"); echo readdir($dir),‘<br>‘; //读文件 .当前目录 echo readdir($dir),‘<br>‘; //读文件 ..上级目录 echo readdir($dir),‘<br>‘; //读文件 目录下的文件名 while($v=readdir($dir)) { if($v=="."||$v=="..") //排除往上找文件 {} else { echo $v."<br>"; } } rewinddir($dir);//重置目录资源的指针 //关闭文件夹 closedir($dir);
三、建立和删除目录
mkdir("./cc");//创建文件夹 rmdir("./cc");//删除目录,只能删除空文件夹 rename("./test","./cc/ts"); //重名民、移动文件夹
文件操作
一、对文件的基本操作
1.文件的基本操作
touch("./cc.txt"); //创建文件 copy("./cc.txt","../cc.txt"); //复制文件 unlink("../cc.txt"); //删除文件
2.文件的读取、写入
echo file_get_contents("./cc.txt");//读取文件内容(word、excel文件除外) echo file_get_contents("http://www.baidu.com"); //读取远程文件内容 file_put_contents("./cc.txt","你好,世界! hello world!"); //写入文件,并将以前的内容覆盖(word、excel文件除外) file_put_contents("./cc.txt",file_get_contents("http://www.baidu.com"));
readfile("./cc.txt"); //读取文件内容并且输出 var_dump(file("./cc.txt")); //读取文件内容,返回数组,数组里面存储的是每一行
二、对文件内容的基本操作
1、文件的打开(只读模式)、读取
$fp=fopen("./cc.txt","r"); //打开文件,只读 /*echo fgetc($fp); //读取文件内容,一个一个字符的读 echo fgetc($fp); echo fgetc($fp);*/ while($v=fgetc($fp)) { echo $v; } echo fgets($fp); //读取文件,一次读一行 echo fread($fp,4); //读取文件内容,可以设置读取长度
2.文件的打开(只写模式)、写入
模式一:写入内容,之前的内容会清空
$fp=fopen("./cc.txt","w"); //打开文件,只写 fwrite($fp,"asdfg"); //写入内容,之前的内容会清空
模式一:写入内容,在文件内容后面追加写入
$fp=fopen("./cc.txt","a"); //打开文件,只写 fwrite($fp,"asdfg"); //写入内容,在文件后面追加写入
3、文件的关闭
fclose($fp);//关闭文件
某个文件夹里的文件全部删除函数(慎用)
<?php function deldir($dirname) { if(!file_exists($dirname)) { die("文件夹不存在!"); } //如果是文件,直接删除即可 if(is_file($dirname)) { unlink($dirname); exit(); } //打开目录资源 $dir = opendir($dirname); while($filename = readdir($dir)) { if($filename !="." && $filename!="..") { //******* $filename = $dirname."/".$filename; if(is_dir($filename) ) { deldir($filename); } else { unlink($filename); } } } closedir($dir); rmdir($dirname); } //调用删除文件函数 deldir("./aa");
时间: 2024-09-28 22:31:13