помогите с php кодом удаленим папки с сервера

MS
На сайте с 26.04.2008
Offline
59
501

C самого утра слоняюсь туда сюда, не могу найти скрипт который реально удаляет папку с сервера. все что тут уже все перепробовал. ниче не работает.

функиция rmdir($dir); да удаляет. но удаляет только пустую папку, а если с файлами, то она ругается.

если этот скрипт:


$dir = "123";

function remove_directory($dir) {
if ($handle = opendir("$dir"))
{
while (false !== ($item = readdir($handle)))
{
if ($item != "." && $item != "..")
{
if (is_dir("$dir/$item"))
remove_directory("$dir/$item");
else
unlink("$dir/$item");
}
}
closedir($handle);
rmdir($dir);
}
}

реально рабочий, то что должно быть в переменных $handle, $item.. ведь из значения нигд не указаны.. может из за осутствия значиний не рботает?

pikasso
На сайте с 27.01.2008
Offline
150
#1

Mac-style, тыц, посмотрите комментарии, там полно функций для вашей задачи.

I
На сайте с 26.08.2010
Offline
18
#2

Попробуйте:


function _unlink($dir) {
if (file_exists($dir)) {
chmod($dir, 0777);
if (is_dir($dir)) {
$handle = opendir($dir);
while($data = readdir($handle)) {
if ($data != "." && $data != "..") _unlink($dir."/".$data);
}
closedir($handle);
if(!rmdir($dir)) return false;
}
else {
if(!unlink($dir)) return false;
}
}
return true;
}

$dir = $_SERVER["DOCUMENT_ROOT"]."/123";
_unlink($dir);
maldivec
На сайте с 04.11.2008
Offline
160
#3

Скрипт у вас рабочий, никаких значений подставлять не надо, скрипт их сам вычисляет. Просто лишние кавычки в этой строке

Mac-style:
if ($handle = opendir("$dir"))

if ($handle = opendir($dir)) должно быть, $dir - переменная, параметр функции.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий