使用PHP删除目录

除了使用scandir或opendir方法之外,还可以使用glob方法来实现,因为glob方法看起来更容易理解。

建议确认是否已在框架中实施。

/**
 * 指定したディレクトリを削除する
 *
 * @param string $directory_path
 * @return boolean
 */
public function remove_directory(string $directory_path): bool
{
    if ( ! is_dir($directory_path))
    {
        return false;
    }

    foreach (glob($directory_path . '/{*,.[!.]*,..?*}', GLOB_BRACE) as $path)// .と..以外の隠しファイルも対象とする
    {
        if (is_file($path))
        {
            if ( ! unlink($path))
            {
                return false;
            }
        }
        elseif (is_dir($path))
        {
            if ($this->remove_directory($path) === false)
            {
                return false;
            }
        }
    }

    return rmdir($directory_path);
}

在搜索文件时,glob非常方便。

$txt_file_list = glob('document/*.txt');

使用exec()函数结合rm命令可以更轻松地在单行中实现删除操作,我认为这样更方便。同样地,对于复制操作,使用cp命令也能带来相似的便利。

# 削除
rm -rf name

# コピー
cp -arf source dest
广告
将在 10 秒后关闭
bannerAds