PHP | rmdir 函数
怎样删除目录
最近更新时间 2021-01-20 09:48:45
rmdir 函数删除目录。
rmdir() 函数尝试删除 dirname 所指定的目录。该目录必须为空,需要有相应的权限。失败时会抛出警告。
函数定义
rmdir ( string $dirname , resource $context = ? ) : bool
// 源文件位于:ext/standard/file.c
# 函数定义
PHP_FUNCTION(rmdir)
{
char *dir;
size_t dir_len;
zval *zcontext = NULL;
php_stream_context *context;
ZEND_PARSE_PARAMETERS_START(1, 2)
Z_PARAM_PATH(dir, dir_len)
Z_PARAM_OPTIONAL
Z_PARAM_RESOURCE_OR_NULL(zcontext)
ZEND_PARSE_PARAMETERS_END();
context = php_stream_context_from_zval(zcontext, 0);
RETURN_BOOL(php_stream_rmdir(dir, REPORT_ERRORS, context));
}
参数
- checkdirname - 目录的路径。
返回值
- checkbool - 成功时返回 true,失败时返回 false。
示例1: - 使用 rmdir() 函数删除目录。
<?php
/**
* PHP rmdir() 函数删除目录。
*
* @since Version 1.0.0
* @filesource
*/
// 删除目录
rmdir("foo");
示例2: - 递归删除目录树。
<?php
/**
* PHP 递归删除目录树。
*
* @since Version 1.0.0
* @filesource
*/
function delTree($dir) {
// 获取路径下的所有目录
$dirs = array_diff(scandir($dir), array('.', '..'));
// 删除文件或目录
foreach ($dirs as $file) {
$filename = $dir.DIRECTORY_SEPARATOR.$file;
is_dir($filename)?delTree($filename): unlink($filename);
}
// 删除目录
return rmdir($dir);
}
// 测试
// delTree('foo');