文件操作
文件操作应注意:
1. Php只能操作服务器的文件,不能操作客户端的文件
2.文件包含目录和文件
一、判断文件类型
【1】 filetype(”需要的参数是”) //获取文件类型
需要的参数是::文件的完整路径
例子:var_dump(filetype("../lianxi.php"));; //返回文件的类型:目录dir 文件file
../代表上级(目录)的意思
显示的结果:
代表它是一个文件
这个文件类型是指它是一个目录还是文件
例子:
代表它是一个目录
【2】is_dir(“ ”) //判断是否是目录
例子:
var_dump(is_dir("../lianzi1")); //判断路径是不是目录
显示的结果:
说明它是一个目录
显示的结果:
说明它不是一个目录
【3】is_ file (“ ”) //判断是否是文件
var_dump(is_file("../11.php")); //判断路径是不是文件
显示的结果:
二、 文件属性
【1】fileatime(" "); //文件上次访问时间
显示的结果:
日期时间戳
把日期时间戳,转化,格式化一下
echo date("Y-m-d H:i:s",fileatime("../lianxi.php "); //上次访问时间
显示的结果:
【2】filectime(" ") //文件的创建时间
echo date("Y-m-d H:i:s",filectime("../lianxi.php ")); //创建时间
显示结果:
【3】filemtime(" ") //修改时间
echo date("Y-m-d H:i:s",filemtime("../lianxi.php ")); //修改时间
显示结果:
【4】filesize(""); //获取文件大小,字节为单位
echo filesize("../lianxi.php "); //文件大小,字节为单位
显示结果:
【5】file_exists(" ") //判断文件是否存在
var_dump(file_exists("../lianxi.php ")); //判断文件是否存在
显示结果:
文件存在返回true
三、文件路径
【1】当前路径:./ 或者什么也不写,也代表当前路径
当前路径它们在你同一文件加下的文件
【2】 上级目录:../
【3】 下级目录:目录/
【4】 根路径:/ 斜杠开头 ? 代表C盘、D盘
根路径:/ 要分是在PHP里还是在HTML里
(1)如果是php里面的根(/)路径代表:磁盘的根
(2)如果是在网页里面的根(/)路径代表:服务器的根(www目录)
【5】$_SERVER['DOCUMENT_ROOT'] //取当前服务器的根路径
echo $_SERVER['DOCUMENT_ROOT']; //取服务器的根路径
显示结果:
【6】basename(" ") //从路径中获取文件名
echo basename("../lianxi.php "); //从路径中获取带后缀的文件名
显示的结果:
【7】basename(" ",".php")从路径中获取不带后缀的文件名
echo basename("../lianxi.php ",".php"); //从路径中获取不带后缀的文件名
显示结果:
【8】dirname(" ");//取路径中除去文件名的目录
echo dirname("../lianxi.php"); //取路径中除去文件名的目录
显示结果:
echo dirname("../0602/0602biaoge.php"); //取路径中除去文件名的目录
显示的结果:
它返回的是,路径中除去文件名的目录
【9】dirname(" "); +拼上+ basename(" ",".php")
它们俩拼上之后就是一个完整的路径
【10】pathinfo(" 路径 ")//返回目录信息,格式为数组
var_dump(pathinfo("../0602/0602biaoge.php")); //返回目录信息,格式为数组
显示的结果:
返回的信息,比较全
【11】realpath("路径 ")
echo realpath("../0602/0602biaoge.php "); //将相对路径转化为绝对路径
显示结果:
从根开始
一、 操作目录
【1】var_dump(glob("../0602/*.php")); //获取目录下所有的文件* 某个后缀的*.php
显示的结果:
【2】用循环来读取 可以获取所有的文件路径
$attr = glob("../0602/*");
for($i=0;$i<count($attr);$i++)
{
echo $attr[$i]."<br>";
}
显示的结果:
这是找的,文件夹下的,一级
【3】 使用这个glob(" ”)方法,去计算一下0602的文件夹下的总共有多少文件和目录??
//定义两个变量
$filenum = 0;
$dirnum = 0;
Num("../LIZI");
echo "文件的数量为:".$filenum."<br>";
echo "文件夹的数量为:".$dirnum;
function Num($url)
{
global $filenum; //全局变量
global $dirnum; //全局变量
//判断给的路径是不是文件
if(is_file($url))
{
$filenum = 1;
return $filenum;
exit;
}
//获取目录下所有的子文件
$attr = glob($url."/*");
//遍历所有的子文件
foreach($attr as $v)
{
if(is_file($v))
{
$filenum++;
}
else
{
$dirnum++;
Num($v);
}
}
}
显示的结果:
【4】使用这个glob(" ”)方法,去计算一下liuyanban的文件夹下的共有多少文件??
echo Num("../liuyanban");
function Num($url)
{
$filenum = 0;
//判断给的路径是不是文件
if(is_file($url))
{
$filenum = 1;
return $filenum;
exit;
}
//获取目录下所有的子文件
$attr = glob($url."/*");
//遍历所有的子文件
foreach($attr as $v)
{
if(is_file($v))
{
$filenum++;
}
else
{
$filenum = $filenum + Num($v);
}
}
return $filenum;
}
显示的结果:
【5】计算文件夹大小
echo DirSize("../liuyanban ");
function DirSize($url)
{
//定义变量存储文件大小
$size = 0;
//判断给的路径是不是文件
if(is_file($url))
{
return filesize($url);
exit;
}
//如果是目录,取目录下的所有文件
$attr = glob($url."/*");
//遍历子文件
foreach($attr as $v)
{
if(is_file($v))
{
$size = $size + filesize($v);
}
else
{
$size = $size + DirSize($v);
}
}
return $size;
}
显示的结果:
【6】使用目录资源遍历
$dir = opendir("../tp"); //打开目录资源
echo readdir($dir); //读取目录下的文件,执行一次读一个
while($wj = readdir($dir))
{
echo $wj."<br>";
}
closedir($dir); //关闭目录资源
rewinddir($dir);//将指针重置
使用readdir()读取的第一个和第二个内容
第一个是. 代表当前目录
第二个是.. 代表上级目录
在使用目录资源遍历文件夹的时候要注意将前两个排除