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');
rss_feed