简明PHP进阶【6-目录处理】

名人之声

发现可能性的界限的唯一办法就是越过这个界限,到不可能中去。

——阿瑟·克拉克

上一节我们讲了在PHP中操作文件,但假设我们需要按日期创建日志目录,按用户创建上传图片等,我们是不是得先建立分类目录呢?在实际的开发过程中,操作目录也是我们需要掌握的。今天就来说说PHP中目录的处理。

1 创建目录

在PHP中创建目录,使用的函数是 mkdir(),如下为函数的语法格式:

bool mkdir(string pathname);

如下创建一个名为images的图片目录,成功返回true,否则返回false:

<?php
if(file_exists("images")){
    echo "目录已经存在";
} else
    mkdir("images");
    echo "目录创建成功"
?>

浏览器下运行显示:目录创建成功。在我们的项目目录下也可以看到生成了images 目录。

2 打开目录

写入文件的前提我们要打开文件,同理,在目录中存入文件,前提也要打开目录。

在PHP中,打开目录使用的函数是opendir()函数,如下函数的语法格式:

resource opendir(string path);

path需要是一个合法(存在的)的目录路径,成功返回目录的指针,如果不合法,会返回错误信息。如下代码示例:

<?php
$images_dir="images";
if(is_dir($images_dir))          //检测是否是一个合法的目录
    if($dir=opendir($images_dir))  //打开目录
        echo $dir;             //输出目录指针
closedir($dir);           //关闭目录
?>

浏览器下运行,返回目录的指针:

3 读取目录

打开目录后,我们就可以读取目录中的数据。在PHP中,读取目录的数据使用函数readdir()函数,如下函数的语法格式:

string readdir(resource dir_handle);

dir_handle为使用opendir()函数打开一个目录返回的目录指针。函数返回目录中下一个文件名,文件名以在目录中的顺序返回。读取失败则返回false。如下代码示例:

<?php
$f_open="images";
$i=0;
if(is_dir($f_open)){          //检测是否是一个合法的目录
    if($dir=opendir($f_open)){  //打开目录
        while($con=readdir($dir)){//读取目录
            $i++;
            echo "$i:$con<br>";      //输出目录中的内容
        }
    }
}
closedir($dir);
?>

浏览器下运行结果如下:由于我们上面例子创建的images目录还是空的文件,所以有如下显示。“.”代表当前目录,“..”代表上一层目录。

4 删除目录

删除目录,在PHP中使用函数is_dir()函数和rmdir()这两个函数来实现,前者判断要删除的目录是否为目录,如果是,则可以使用rmdir()函数来删除,否则提示“删除目录失败”。删除成功返回true,否则返回false。其语法格式如下:

bool rmdir(string dirname);

dirname为要删除的目录,这里有个注意点,删除目录的前提是删除的目录要为空目录。我们来试试上面创建的images目录,示例代码如下:

<?php
if(!file_exists("images"))
    echo "目录已经删除了";
else
    rmdir("images");
    echo "目录删除了";
?>

浏览器下运行结果:项目目录中发现images目录也已经不存在了。

5 改变目录

改变目录,意思是在已经打开的目录中,要转移到另一个目录去。在PHP中,这个操作可以使用函数chdir()函数来实现。如下函数的语法格式:

bool chdir(string directory);

directory要跳转的目录,成功执行返回true,负责返回false。我们在目录中创建两个目录,images和css。示例代码如下:

<?php
$images="images";
$dir=opendir($images);
echo $dir;
closedir($dir);          //关闭目录
$dir=chdir("css");
echo "<br/>$dir";
?>

浏览器运行结构:目录已经改变

6 关闭目录

正如关闭文件,防止占用资源,同理,对于目录,使用目录完毕,也应该要及时关闭目录。在PHP中,关闭目录使用的函数是 closedir()函数,如下函数语法格式:

void closedir(resource dir_handle);

dir_handle为使用opendir()函数打开一个目录返回的目录指针。如下示例代码:

<?php
$images="images";
$shi=opendir($images);  //打开文件
//..........           //对文件进行操作
closedir($shi); // 关闭目录
echo "关闭目录完成"
?>

浏览器下运行结果:

以上就是目录处理的整个过程,会使用到的操作函数。这节就介绍打这里咯。

原文发布于微信公众号 - Lemon黄(lemonhunag)

原文发表时间:2019-10-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券