Как удалить папку, в которой был запущен скрипт? - PullRequest
0 голосов
/ 03 мая 2010

У меня есть delete.php в папке abc, поэтому я звоню localhost/abc/delete.php.Я хочу иметь возможность удалить папку abc и все ее содержимое с сервера при вызове localhost/abc/delete.php.Как это сделать?

Ответы [ 2 ]

1 голос
/ 03 мая 2010

Эта функция удаляет каталог с все это содержание. Второй параметр является логическим для указания функции, если следует удалить каталог или только содержание


    function rmdir_r ( $dir, $DeleteMe = TRUE )
    {
        if ( ! $dh = @opendir ( $dir ) ) return;
        while ( false !== ( $obj = readdir ( $dh ) ) )
    {
    if ( $obj == '.' || $obj == '..') continue;
    if ( ! @unlink ( $dir . '/' . $obj ) ) rmdir_r ( $dir . '/' . $obj, true );
        }

    closedir ( $dh );
    if ( $DeleteMe )
        {
            @rmdir ( $dir );
        }
    }
//use like this:

rmdir_r( 'abc' );

0 голосов
/ 03 мая 2010

Попробуйте что-то вроде этого:

function deleteDir($dir) {
    if (!is_dir($dir)) return unlink($dir);
    foreach (scandir($dir) as $item) {
        if ($item == '.' || $item == '..') continue;
        if (!deleteDir($dir.'/'.$item)) return false;
    }
    return rmdir($dir);
}

$dir = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'], '/'));
deleteDir($dir);
...