PHP目录操作常用函数大全(附带实例)
在 PHP 中,对目录进行操作就是对文件夹(操作系统的重要组成部分,用于管理文件的群组)进行操作,包括目录的打开、关闭、创建、读取和删除。
【实例 1】打开文件的目录,判断目录是否存在。
【实例 2】关闭文件目录。
注意,如果程序是在 Windows 操作系统环境下运行,那么 mode 参数会被自动忽略。另外,recursive 参数和 context 参数都是在 PHP 5 之后增加的,不可用于早期的 PHP 4 环境。
【实例 3】创建指定的文件目录。在指定目录下创建了一个 PHP 文件夹。
【实例 4】读取指定的文件目录。
【实例 5】列出当前目录的所有文件,并且过滤“.”“..”
除了 readdir() 函数外,在 PHP 中还可以使用 scandir() 函数列出指定路径中的文件和目录。基本语法如下:
【实例 6】scandir() 函数的应用。
【实例 7】删除指定目录。
在创建目录或删除目录时,如果遇到权限问题,可以试试为目录赋权和关闭 SELinux 防火墙。
PHP打开目录
在 PHP 中,打开目录的函数为 opendir(),其语法如下:opendir(string path)其中,path 参数代表路径。该函数返回一个资源对象。
【实例 1】打开文件的目录,判断目录是否存在。
<?php $dir = "/var/www/html/"; if(is_dir($dir)) //使用is_dir() 函数判断路径的有效性,其语法为bool is_dir(string path) {$dir_res = opendir($dir); echo "目录存在"; } else echo "目录不存在或者不是有效的目录"; ?>运行结果为:
目录存在
PHP关闭目录
在 PHP 中,关闭目录的函数为 closedir(),其语法如下:void closedir(dir_resource)其中,dir_resource 参数指使用 opendir() 函数返回的资源对象。
【实例 2】关闭文件目录。
<?php closedir($dir_res); //$dir_res是在【实例5-4 】中打开目录返回的资源对象 ?>
PHP创建目录
在 PHP 中,创建目录的函数为 mkdir(),其语法如下:bool mkdir(string pathname[,int mode[,bool recursive[,resource context]]])其中,pathname 是必选参数,表示要创建的目录的地址,执行成功则返回 true,执行失败则返回 false。其他 3 个参数是可选参数,说明如下:
- mode:规定权限,默认值是 0777,表示最高访问权限;
- recursive:指定是否设置递归模式;
- context:指定文件句柄的环境。
注意,如果程序是在 Windows 操作系统环境下运行,那么 mode 参数会被自动忽略。另外,recursive 参数和 context 参数都是在 PHP 5 之后增加的,不可用于早期的 PHP 4 环境。
【实例 3】创建指定的文件目录。在指定目录下创建了一个 PHP 文件夹。
<?php // 指定要创建的目录路径 $dir = "new_directory"; // 创建目录,设置权限为 0755(可读可写可执行,但不允许其他人写入) // 递归模式设置为 false,表示不创建多级目录 if (mkdir($dir, 0755, false)) { echo "目录创建成功!"; } else { echo "目录创建失败!"; } ?>在这个示例中,我们尝试创建一个名为 new_directory 的目录,并设置权限为 0755。这意味着所有者(通常是运行 PHP 脚本的用户)将拥有读、写和执行权限,而组和其他用户将只有读和执行权限。
PHP读取目录
在 PHP 中,读取目录中文件的函数为 readdir(),其语法如下:String readdir(resource dir_handle)其中,dir_handle 参数指使用 opendir() 函数返回的资源对象。该函数按照文件系统的文件排序返回文件名。
【实例 4】读取指定的文件目录。
<?php $dir = "/var/www/html/"; $dir_res = opendir($dir); while($filen = readdir($dir_res )) { echo $filen."<br />"; } closedir($dir_res); ?>运行结果为:
.
..
index.php
test.php
【实例 5】列出当前目录的所有文件,并且过滤“.”“..”
<?php $dir = "/var/www/html"; $dir_res = opendir($dir); while($filen = readdir($dir_res )) { if( $filen!= "." && $filen!= "..") echo $filen."<br>"; } closedir($dir_res); ?>运行结果为:
index.php
test.php
除了 readdir() 函数外,在 PHP 中还可以使用 scandir() 函数列出指定路径中的文件和目录。基本语法如下:
array scandir (string directory[,int sorting_order[,resource context]])该函数包含 3 个参数,参数说明如下:
- directory:被浏览的目录。
- sorting _order:可选参数,默认按字母升序排列;如果设置值为 1,则按字母降序排列。
- context:可选参数,用户指定文件句柄的环境。
【实例 6】scandir() 函数的应用。
<?php $dir ="/var/www/html"; $arr=scandir($dir) ; foreach($arr as $value) echo $value."<br>"; ?>运行结果为:
.
..
conn.php
denglu.php
dl.css
PHP删除目录
在 PHP 中,删除目录的函数为 rmdir(),其语法如下:bool rmdir(string pathname)
其中,pathname 参数表示要删除的目录地址。【实例 7】删除指定目录。
<?php $dir ="/var/www/html/php/"; if(is_dir($dir)) if(rmdir($dir)) echo "删除成功"; else echo "删除失败"; ?>注意,在删除目录时,目录必须为空。
在创建目录或删除目录时,如果遇到权限问题,可以试试为目录赋权和关闭 SELinux 防火墙。