<body>
<?php
//文件:文件+文件夹(目录)
//获取文件类型,如果是文件返回 file ,如果是目录返回 dir
var_dump(filetype("./aa.txt"));
var_dump(filetype("./aa"));
var_dump(is_dir("./aa"));//判断给定的路径是不是目录
var_dump(is_file("./aa.txt"));//判断给定的路径是不是文件
echo date("Y-m-d H:i:s",fileatime("./aa.txt"));//获取文件的上次访问时间,fileatime
echo date("Y-m-d H:i:s",filectime("./aa.txt"));//获取文件的创建时间,filectime
echo date("Y-m-d H:i:s",filemtime("./aa.txt"));//获取文件的修改时间,filemtime
echo filesize("./aa.txt");//获取文件的大小
var_dump(file_exists("./aa.txt"));//判断文件是否存在
/*
文件路径
1.当前目录:./ 或者不写
2.上级目录:../
3.下级目录:文件夹名/
4.根目录:/
根目录/有两层意思:
如果 / 是在php程序里面的话代表: 硬盘根目录
如果 / 是在网页里的话代表: 代表服务器的根目录(www)
*/
//(重点)做文件上传头像,产品图片,保存在数据的路径一定要写绝对路径
//echo $_SERVER['DOCUMENT_ROOT'];//取服务器www的根目录
/*
echo basename("aa.txt");//从路径中获取文件名
echo basename("aa.txt",".txt");//返回没有后缀的文件名
echo dirname("./aa/bb.txt");//返回路径中的目录,不要文件名
*/
//var_dump(pathinfo("./aa/bb.txt"));//返回文件信息,二维数组
//echo realpath("./aa/bb.txt");//将相对路径转为绝对路径
//目录操作
var_dump(glob("./img/tmp/*"));//返回目录下所有的文件
var_dump(glob("./img/tmp/*.txt"));//可以根据后缀筛选所有文件
/*
遍历目录
要求:获取文件夹下所有文件个数
*/
//方法1:
//做一个 递归函数
function Shuliang($filename)
{
if(is_dir($filename))
{
$attr= glob($filename."/*");
$sl=0;
foreach($attr as $v)
{
if(is_dir($v))
{
$sl+= Shuliang($v);
}
else
{
$sl++;
}
}
return $sl;
}
else
{
if(is_file($filename))
{
return 1;
}
else
{
return 0;
}
}
}
$filename = "./img";
$sl = Shuliang($filename);
echo $sl;
//方法2:
//打开目录资源(推荐使用)
$dir = opendir("./img");
/*
echo readdir($dir)."<br />";//读文件 . 当前目录
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);
/*<?php
$dir = opendir("./img");
while($v = readdir($dir))
{
if($v=="." || $v=="..")
{}
else
{
echo $v."<br />";
}
}
closedir($dir);
打开目录资源,遍历目录
?>*/
?>
</body>
</html>
<?php
//目录操作
mkdir("./aa"); //创建目录
rmdir("./test"); //删除目录,只能删除空文件夹
rename("./test","./aa/test");//(从左移动到右边,右边创造建被移动的文件名,)重命名、移动文件夹
//文件操作
touch("./aa.txt");//创建文件
copy("./aa.txt","../xx.txt"); //复制文件(从左复制到右,新建名称)
unlink("./aa.txt");//删除文件
echo file_get_contents("./aa.txt"); //读取文件内容
echo file_get_contents("http://www.baidu.com"); //读取远程文件
file_put_contents("./aa.txt",file_get_contents("http://www.baidu.com"));//向文件里面写入内容
file_put_contents("./aa.txt","HELLO");
readfile("./aa.txt");//读取文件内容并显示
var_dump(file("./aa.txt")); //读取文件内容,并且返回数组,数组里面存的是每一行
//文件内容操作
$fp = fopen("./aa.txt","a");//打开文件资源
fwrite($fp,"aaaaaa"); //写入内容,w方式会覆盖,a方式会追加
while($v = fgetc($fp)) //读取文件内容,一个一个字符读取
{
echo $v;
}
echo fgets($fp); //获取文件一行内容,一行一行获取
echo fread($fp,2); //读取文件内容,可以读取特定长度的内容
fclose($fp);//关闭文件资源
//文件夹操作
$dir = opendir("./aa");
while($v = readdir($dir))
{
echo $v."<br>";
}
closedir($dir);