php-文件操作
php-文件操作
文件概述:php里面文件包含目录和文件两种
一.判断文件类型
var_dump(filetype("./test")); //判断是文件还是目录
var_dump(is_file("./aa.txt")); //判断是否是文件
is_dir("./test"); //判断是否是目录
二.文件属性
echo date("Y-m-d H:i:s",fileatime("./aa.txt")); //文件的上次访问时间
filectime("./aa.txt"); //文件的创建时间
echo date("Y-m-d H:i:s",filemtime("./aa.txt")); //文件的修改时间
echo filesize("./aa.txt"); //获取文件大小
var_dump(file_exists("./aaa.txt")); //判断文件是否存在
三.文件路径
1. ./ 当前路径
2. ../ 上级路径
3. var_dump(file_exists("/wamp/www/aa.jpg"));
/ 代表根,在网页里面代表www目录,在PHP里面代表磁盘根
4. echo $_SERVER['DOCUMENT_ROOT']; //服务器的根目录
5. echo basename("./aa.txt"); //获取路径中的文件名
6. echo dirname("../0428/DBDA.class.php"); //获取路径中的文件夹目录
7. var_dump(pathinfo("../0428/DBDA.class.php")); //获取路径信息
8. echo realpath("./aa.txt"); //将相对路径转化成绝对路径
四.目录操作
1. mkdir("./aa"); //创建目录
2. rmdir("./aa"); //删除目录,目录必须为空
3. rename("./test","../ceshi"); //移动目录 ("old","new")还可以重命名
4. 遍历目录
(1)var_dump(glob("./qiyezhan/*.txt")); //获取目录下所有文件
(2)打开目录,返回目录资源
$dname = "./qiyezhan";
$dir = opendir($dname);
(3)从目录资源里面读文件,每次读一个
while($fname = readdir($dir))
{
echo $dname."/".$fname."<br>";
}
(4)关闭目录资源
closedir($dir);
(5)rewinddir($dir) //指针返回最初
例子1
题目:获取某个文件夹下所有文件的数量
<?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 "给的文件夹不对"; } } ?>
五.文件整体操作
1. touch("./aa.txt"); //创建文件
2. copy("./aa.txt","../aa.txt"); //复制文件
3. unlink("./aa.txt"); //删除文件
4. echo file_get_contents("http://www.baidu.com"); //读取文件
5. file_put_contents("11.txt","hello"); //写内容
6. readfile("./11.txt"); //读取并输出
7. var_dump(file("11.txt")); //读取文件内容,返回数组,每行是一个元素
六.文件内容操作
1. 打开文件资源
$fp = fopen("文件名","模式 r w") //$f = fopen("./11.txt","a");
r只读;r+读写;w写清空;w+读写;a写入文件末尾;a+读写;x创建并以写入打开;x+创建并以读写打开;加一个b代表可操作二进制文件(建议加)
2. 关闭文件资源
fclose($f)
3. 写入内容
fwrite($f,"aaaaa")
4. 获取文件内容(一个字符一个字符读)
fgetc($fp)
5. feof($fp) //如果文件出错或到末尾返回true
6. fgets($fp) //一次读一行
7. fread($fp,10) //读多长
例子2
题目:删除文件夹
<?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); } } ?>