该文章适用于初学PHP的小白对目录操作函数进行相关的理解。
<?php
/**
目录相关操作函数
之前我们知道article下有a.txt b.txt c.txt d.txt 我们才去写
但是当文件下有e.html f.mp3.。。。我们只要处理txt文件
使用glob() 匹配文件
****/
//print_r(glob('*.txt')); //glob()查找的是当前目录下的匹配的
//print_r(glob('./article/*.txt')); //OK
//glob()在工作中很有用,但是今天重点不是
//为了查看目录下的所有文件,用opendir
/*
opendir 打开目录,返回资源句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。
readdir 读取目录 \,成功则返回文件名 或者在失败时返回 FALSE ,因此我用NULL是不对的
mkdir 创建目录
rmdir 删除目录
closedir 关闭目录
is_dir 判断是否是目录
unlink 删除文件
*/
$path = './misc';
var_dump(opendir($path)); //resource(3, stream)
$dh = opendir($path);
/*
echo readdir($dh); // .
echo readdir($dh); // ..
echo readdir($dh); // a.txt
echo readdir($dh); // b.exe
// . 和 .. 是虚拟目录,当前目录和上级目录,
*/
echo "<hr />";
//判断目录
while (($filename = readdir($dh)) !== false) { //直接判断真假是不对的,因为可能会出现0,因此使用false
echo $filename;
if (is_dir('./misc/'.$filename)) {
echo "是目录";
}
echo "<br />";
}
//创建
foreach (array('a', 'b', 'c', 'd') as $v) {
$path = './misc/'.$v; //意思是在misc下创建目录
if (file_exists($path) && is_dir($path)) {//先判断是否存在并且是目录
echo $path."已经存在<br />";
}else if (mkdir($path)) {
echo $path."创建成功<br />";//第一次创建成功了,第二次创建就会失败,因为目录已经存在了
} else{
echo $path."创建失败<br />";
}
}
//删除目录
foreach (array('a', 'c', 'e') as $v) {
$path = './misc/'.$v;
if (file_exists($path) && is_dir($path)) {
if (rmdir($path)) { //因为在linux下权限控制比较严格,所以要判断是否删除成功
echo $path."目录删除成功<br />"; //非空目录禁止删除,rmdir只能删除非空目录
}else{
echo $path."目录删除失败<br />";
}
}else{
echo $path."目录不存在<br />";
}
}
//关闭目录
closedir($dh);