PHP目录操作技术
目录也是文件,是一种特殊的文件,那么既然是文件,如果对其进行操作同样也需要先打开它,然后才能进行浏览、写入文件等操作,当然,最后也是要关闭文件资源。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>'; //循环输出结果 } }
示例代码中的路径是相对我程序路径设置的,输出结果如下:
最后,关闭目录指针,使用closedir(resource handle)函数,参数就是使用opendir()打开的目录句柄资源。
PHP扫描目录文件除了scandir函数外,还可以使用glob函数,具体请参考:php glob()函数 遍历目录或文件夹
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com
上一篇:PHP文件目录处理技术