удалить всё что внутри папки не удаляя папку

zilon

Постоялец
Регистрация
30 Июл 2011
Сообщения
370
Реакции
146
нашёл функцию удаления папки, но она стирает саму папку после удаления файлов и вложеных папок. Подскажите пожалуста как сделать чтоб он папку не удаляла. Вот код папка называется shablon

PHP:
$put = dirname(__FILE__);
$end = $put.'\shablon';

function removeDirectory($dir) {
    if ($objs = glob($dir."/*")) {
      foreach($objs as $obj) {
        is_dir($obj) ? removeDirectory($obj) : unlink($obj);
      }
    }
    rmdir($dir);
  }

removeDirectory($end);
 
  • Заблокирован
  • #2
PHP:
$put = dirname(__FILE__);
$end = $put.'\shablon';

function removeDirectory($dir) {
    if ($objs = glob($dir."/*")) {
      foreach($objs as $obj) {
        is_dir($obj) ? removeDirectory($obj) : unlink($obj);
      }
    }
    $dir !== $end && rmdir($dir);
  }

removeDirectory($end);
 
PHP:
$put = dirname(__FILE__);
$end = $put.'\shablon';

function removeDirectory($dir) {
    if ($objs = glob($dir."/*")) {
      foreach($objs as $obj) {
        is_dir($obj) ? removeDirectory($obj) : unlink($obj);
      }
    }
    $dir !== $end && rmdir($dir);
  }

removeDirectory($end);

всё равно удаляет :nezn:
 
  • Заблокирован
  • #4
в самом конце перед rmdir сделай echo $dir. Он тебе выведет список дирректорий/файлов которые он удаляет. Тебе надо сделать

$dir != "последний из списка" && rmdir($dir);

последний из списка - это по идее $end - но может он там как-то по другому отображается.
 
сделал проще :)

PHP:
$put = dirname(__FILE__);
$end = $put.'\shablon';

function removeDirectory($dir) {
    if ($objs = glob($dir."/*")) {
      foreach($objs as $obj) {
        is_dir($obj) ? removeDirectory($obj) : unlink($obj);
      }
    }
    rmdir($dir);
  }

removeDirectory($end);

mkdir ($end);
 
Можно так:
PHP:
<?php

$put = dirname(__FILE__);
$end = $put.'/dir';

function removeDirectory($dir, $removeSelf = false) {
    if ($objs = glob($dir."/*")) {
      foreach($objs as $obj) {
        is_dir($obj) ? removeDirectory($obj, true) : unlink($obj);
      }
    }
    if ($removeSelf) rmdir($dir);
  }

removeDirectory($end);
 
Назад
Сверху