• 微信
您当前的位置: 首页> PHP> PHP功能函数> 文件处理函数>

PHP目录操作技术

作者:Alpha时间:2018-11-12 阅读数:2993 +人阅读

目录也是文件,是一种特殊的文件,那么既然是文件,如果对其进行操作同样也需要先打开它,然后才能进行浏览、写入文件等操作,当然,最后也是要关闭文件资源。PHP操作文件目录可分为三个步骤:1、打开指定目录,2、读取目录结构,3、关闭目录指针。

1、opendir()函数 打开指定目录

打开文件和打开目录虽然都是执行的打开操作,但是使用的函数不同,而且对未找到指定文件的处理结构也不同。fopen()函数如果是打开不存在的文件,它会直接创建一个新文件出来,而打开目录函数opendir()函数却没有那么智能,它会直接抛出一个错误信息,成功打开的话会返回一个目录句柄,失败则返回false。语法:

opendir(path,context);
参数 描述
path 必需。规定要打开的目录路径。
context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

通过在opendir()函数前添加@符号,可以屏蔽错误信息的输出。


2、读取目录结构

应用opendir()函数打开目录之后,就可以利用返回的目录句柄资源,配合PHP中提供的scandir()函数完成对目录的浏览操作。该函数浏览指定路径下的目录和文件,成功返回文件名的array数组,失败返回false。如果 directory 不是目录,则抛出 E_WARNING 级别的错误。

scandir(directory,sorting_order,context);
参数 描述
directory 必需。规定要扫描的目录。
sorting_order

可选。规定排列顺序。默认是 0,表示按字母升序排列。

如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。

如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。

context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

demo示例代码:

/**
 * User: alpha
 * Date: 2018/11/13
 * Time: 10:26
 * 浏览目录内文件
 */
$path = "./../../static/images/";                //定义相对路径
var_dump(realpath($path));          //通过realpath函数可以查看目录的绝对路径,这对相对路径不熟练的很有帮助,可以提前检测下自己写的相对路径是否正确
if(is_dir($path)){                  //判断当前路径是否为目录
    $files = scandir($path);        //将目录信息保存到$file数组中
    for($i=0;$i<count($files);$i++){
        echo "#".$files[$i].'<br>'; //循环输出结果
    }
}

示例代码中的路径是相对我程序路径设置的,输出结果如下:

QQ截图20181113103829.jpg


最后,关闭目录指针,使用closedir(resource handle)函数,参数就是使用opendir()打开的目录句柄资源。


PHP扫描目录文件除了scandir函数外,还可以使用glob函数,具体请参考:php glob()函数 遍历目录或文件夹

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com

阿尔法

软件开发工程师#全栈工程师

{include file=foot.html}