Изтриване на директория – function delete/empty directory
В този урок ще ви кажа как да си направите функция за триене на всичко от дадена папка (под-папки и файлове) и триене САМО на файловете (т.е. трият се всички файлове от папката и под-папките. Но САМО файловете. Папките си остават.)
Ето първата функция. FUNCION DELETE. Трие абсолютно всичко.
function remove_dir($dir)
{
$handle = opendir($dir);
while (false!==($item = readdir($handle)))
{
if($item != '.' && $item != '..')
{
if(is_dir($dir.'/'.$item))
{
remove_dir($dir.'/'.$item);
}else{
unlink($dir.'/'.$item);
}
}
}
closedir($handle);
if(rmdir($dir))
{
$success = true;
}
}Ето и втората функция която само изпразва папката и под-папкитe. FUNCTION EMPTY
function dirdelete($directory)
{
if (!is_dir($directory))
{
echo ("$directory | Директорията не съществува!");
}
if ($dir = opendir($directory))
{
while (($dirfile = readdir($dir)) !== false)
{
$path = $directory.'/'.$dirfile;
if (is_link($path) || $dirfile == '.' || $dirfile == '..')
{
continue;
}
if (is_file($path))
{
unlink ("$path");
}
if (is_dir($path))
{
$dirdel = dirdelete($path);
}
}
closedir($dir);
}
}Има различни начини да извикате дадена функция. Аз лично ползвам този.
В случая:
<?php
$current_dir = "folder"; ////// ИМЕТО НА ПАПКАТА КОЯТО ЩЕ ТРИЕТЕ///////
$del = remove_dir($current_dir);
if ($del){
echo "Успешно изтрихте папката";
} else {
echo "Грешка!";
}
?>И ето и варианта за другата функция:
<?php
$current_dir = "folder"; ////// ИМЕТО НА ПАПКАТА КОЯТО ЩЕ ИЗПРАЗВАТЕ///////
$empty = remove_dir($current_dir);
if ($empty){
echo "Успешно изпразнихте папката";
} else {
echo "Грешка!";
}
?>Урока е подготвен специално за WEB-TOURIST.NET
Ако не разбирате нещо, моля питайте във форума.


