0

これは、フォルダーとファイルを再帰的に削除するために使用している関数です

function rmdir_recursively($dir) {
    if (!is_dir($dir) || is_link($dir)) return unlink($dir); 
        foreach (scandir($dir) as $file) { 
            if ($file == '.' || $file == '..') continue; 
            if (!rmdir_recursively($dir . DIRECTORY_SEPARATOR . $file)) { 
                chmod($dir . DIRECTORY_SEPARATOR . $file, 0777); 
                if (!rmdir_recursively($dir . DIRECTORY_SEPARATOR . $file)) return false; 
            }; 
        } 
        return rmdir($dir); 
}

問題は、ルート内のフォルダーを送信すると、このフォルダーが削除されることです。しかし、そのようにルートフォルダー自体を送信すると

rmdir_recursively("./");

以下のような一連のエラーを返します

PHP Warning:  unlink(.//wp/wp-admin/network) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-admin/user) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-content) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-content/plugins) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-content/plugins/akismet) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52

私は何が欠けていますか?

4

1 に答える 1

1

送っていると言うのですrmdir_recursively("./");か?

しかし、コードを見てください。後で を呼び出していrmdir_recursively($dir . DIRECTORY_SEPARATOR . $file)ます。

これは、「.//」内のファイルを排除しようとしていることを意味します。

エラーメッセージに含まれているのはそのためですunlink(.//wp/wp-admin/user)

rmdir_recursively(".");代わりに使用してください。

于 2012-10-07T08:06:00.793 に答える