前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简明PHP进阶【6-目录处理】

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

作者头像
Lemon黄
发布2019-10-08 17:48:22
4220
发布2019-10-08 17:48:22
举报
文章被收录于专栏:Lemon黄

名人之声

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

——阿瑟·克拉克

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

1 创建目录

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

代码语言:javascript
复制
bool mkdir(string pathname);

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

代码语言:javascript
复制
<?php
if(file_exists("images")){
    echo "目录已经存在";
} else
    mkdir("images");
    echo "目录创建成功"
?>

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

2 打开目录

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

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

代码语言:javascript
复制
resource opendir(string path);

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

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

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

3 读取目录

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

代码语言:javascript
复制
string readdir(resource dir_handle);

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

代码语言:javascript
复制
<?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。其语法格式如下:

代码语言:javascript
复制
bool rmdir(string dirname);

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

代码语言:javascript
复制
<?php
if(!file_exists("images"))
    echo "目录已经删除了";
else
    rmdir("images");
    echo "目录删除了";
?>

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

5 改变目录

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

代码语言:javascript
复制
bool chdir(string directory);

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

代码语言:javascript
复制
<?php
$images="images";
$dir=opendir($images);
echo $dir;
closedir($dir);          //关闭目录
$dir=chdir("css");
echo "<br/>$dir";
?>

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

6 关闭目录

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

代码语言:javascript
复制
void closedir(resource dir_handle);

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

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

浏览器下运行结果:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档