标签:
文件:文件和文件夹(目录)
文件属性
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");
标签:
原文地址:http://www.cnblogs.com/zst062102/p/5524760.html