Сайт на файлах

Vasj

Guest
Сайт на файлах

Здравствуйте.
У себя на локале я строю сайт на файлах.Админ меню работает примерно так:
В один файл сохраняю рубрики и тут же создаю файл для подрубрики в котором хранятся подрубрики а также каталог
для upload файлов.
Проблема в том что если я удаляю рубрику мне приходится делать проверку есть ли файлы в каталоге который привязан к данной рубрике и если есть то сперва нужно удалить их а затем каталог rmdir().
Может кто знает как решить задачу проще?
 

vovchik542

Новичок
neko
:)

Vasj

PHP:
$od = opendir("your_dir");
while ($rd=readdir($od))
{
   if ($rd == '.' || $rd == '..') continue;
   unlink("your_dir/".$rd);
}
closedir($od);
rmdir("your_dir");
 

Vasj

Guest
Originally posted by vovchik542
neko
:)

Vasj

PHP:
$od = opendir("your_dir");
while ($rd=readdir($od))
{
   if ($rd == '.' || $rd == '..') continue;
   unlink("your_dir/".$rd);
}
closedir($od);
rmdir("your_dir");
Спасибо,
вот тупая голова как сразу сам не сообразил а то я
делал так загонял в массив данные из каталога потом проверял его если пусто то удалял каталог если нет то
данными из массива удалял файлы :p
Код конечно будет необходимо доработать т.к. в каталоге
у меня будут подкаталоги по темам тут уж поработаю своей головой :)
 

vovchik542

Новичок
PHP:
function DelTree($dirname)
{
	$d=@opendir($dirname);
    if (!$d) return;
    while (($e=readdir($d)) !== false) {
    	if ($e=='.' || $e=='..') continue;
        $curr_way = $dirname."/".$e;
        if (is_file($curr_way))
        	unlink($curr_way);
        if (is_dir($curr_way)) {
        	if (!@chdir($curr_way)) continue;
        	DelTree($curr_way);
        	chdir("..");
        }
    }
    closedir($d);
    rmdir($dirname);
}
Удаляет каталог и все содержимое. Могут быть ошибки, т.к. писал из головы:)
 

Vasj

Guest
С функцией DelTree() не знаком да и в мане не встречал пока искал выход из ситуации не подскажешь где можно про нее почитать:confused:
 

neko

tеam neko
вася, милый
можно узнать, почему ты так упорно не хочешь воспользоваться функциями операционной системы?
 

Vasj

Guest
Все понял код пояснения не требуются
виноват бегло пробежался по коду:)

-~{}~ 16.01.05 02:21:

Originally posted by neko
вася, милый
можно узнать, почему ты так упорно не хочешь воспользоваться функциями операционной системы?
Я же писал у меня админское меню в браузере и все команды выполняются через формы,мне так удобно пополнять сайт а
потом для пользователей я буду делать чтобы они как бы имея свою комнату на проекте туда заносили свои файлы выкладывая их в сеть не дам же я им доступ с такими правами да и с командной строкой как им справляться:)
 

neko

tеam neko
да с коммандной строкой пользователям сайта не совладать
умываю руки
 

Нечто

Психолог РНРClub
Vasj, как сказал бы Фанат, ты сначала разберись, где у тебя браузер с формами, а где командная строка...
 

Vasj

Guest
Originally posted by neko
да с коммандной строкой пользователям сайта не совладать
умываю руки
Принцип моего построения в том чтобы сайт мог пополнить файлами, рубриками модератор не знакомый ни с ПХП ни с другими языками

-~{}~ 16.01.05 02:45:

Originally posted by Нечто
Vasj, как сказал бы Фанат, ты сначала разберись, где у тебя браузер с формами, а где командная строка...
Да куда уж нам новичкам,
кстати Фанат бы закрыл тему если вопросов больше нет,а
их больше нет:cool:
 

Vasj

Guest
Помогите с кодом

Здравствуйте.
Есть функция удаления каталога и всех его подкаталогов и файлов:
PHP:
function delete_dir($d){
$str_dir=opendir($d);
while(($f=readdir($str_dir))!==false)
{
if (is_file($d."/".$f))
{
unlink($d."/".$f);
}
else if (is_dir($d."/".$f)&& ($f!=".")&&($f!="..")){
 $this->delete_dir($d."/".$f);
}
  }
closedir($str_dir);
echo $d."<br>";
rmdir($d);
Не понятна рекурсия удаления корневого каталогаБведь в цикле когда встречается подкаталог происходит перенаправление на этот подкаталог и переменная
PHP:
$d
содержит другое значение значит должен быть удален только подкаталог а удаляется также и корневой каталог,
не могли бы обьяснить как происходит работа этой функции,
насчет мана читал там не объясняется:(
 

Vasj

Guest
Originally posted by admin
вместо
unlink($d."/".$f);
пиши echo и отлаживай код :)
как файлы удаляются с этим разобрался в этом нет проблемБ
я же говорю не понятно как удаляются подкаталоги и сам каталог ведь его удаление не организовано циклом
 

Vasj

Guest
Originally posted by sakon
rmdir($d);
знаю что с помощью rmdir($d),
я говорю о том что он ведь не организован циклом а т.е должен удалить например только подкаталог но не каталог:(
 
Сверху