![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Turik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Привет, всем форумчанам!
Неработает! Почему.. немогу найти! Помогите!!!! За ранее благодарен! Функция:
Ощибка: Warning: rmdir(../img/menu/resto) [function.rmdir]: Directory not empty in C:\Program Files\Apache Group\Apache2\htdocs\www\wedding\site\library\functions.php on line 27 |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Так должно работать:
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Render |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 12.5.2005 Репутация: нет Всего: 3 |
|
|||
|
||||
Turik |
|
||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Спосибо!!! Работает! Странно, Я пробовал : while((FALSE != ($file = readdir($dir))) Но неполучилос! А где моя ощибка? Я нехочу просто скопировать код, а понять! Спосибо, вам обоим ребята! |
||||
|
|||||
Prof_2000 |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 26.3.2005 Где: Харьков, Украина Репутация: нет Всего: 1 |
Ну, код Render`a тебе, наверное, понятен... А вот твоя ошибка в том, что вот этой строкой
ты проверяешь, а не равен ли $file результату функции readdir($handle). В этом случае присвоения не происходит. Мало того, если директория непуста, то результат будет равен false, так как $file=0, а readdir($handle)!=0. таким образом в тело цикла ты не заходил. mishaSL посоветовал заминить на
тут происходит присваивание и проверяется результат. А результат оператора "=" - это присвоенное значение. То есть если директория непуста, то оно не равно 0. Правда, хочется отметить, что достаточно напсать
потому как 0 и false тождественны. Не знаю, как в PHP, но в С написание " != false" считается плохим стилем программирования... Это сообщение отредактировал(а) Prof_2000 - 11.3.2007, 21:08 --------------------
Pereant qui ante nos nostra dixerunt! (лат.) Да погибнут те, кто раньше нас высказал наши мысли! |
||||||
|
|||||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Значит не правильно пробовал. ![]() -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
mishaSL |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
http://ru2.php.net/readdir Цитата:
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
||||
|
|||||
Prof_2000 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 26.3.2005 Где: Харьков, Украина Репутация: нет Всего: 1 |
Да, прошу прощения. Просто сам всегда писал именно так...
![]() --------------------
Pereant qui ante nos nostra dixerunt! (лат.) Да погибнут те, кто раньше нас высказал наши мысли! |
|||
|
||||
Turik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Bolwoe vsem sposibo, rebyata!!!
A esli 4esno.. kod Render'a nesovsem ponyaten.. :( U koqo vremya est.. prowu pomo4.. tem kto v tanke ![]() |
|||
|
||||
Render |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 12.5.2005 Репутация: нет Всего: 3 |
Описываю. Нужна ф-ция удаления каталога. Для удаления каталога имеем встроеную ф-цию rmdir()
НО...она удаляет только пустые директории, соответственно, нужно бы прочистить всё внутри этой директории...для упрощения данной задачи, можно воспользоваться ф-цией glob. glob -- Находит файловые пути, совпадающие с шаблоном. PHP Manual: GLOB >>> далее имеем, ищем по шаблону *.* и удаляем всё это ф-цией unlink, воспользовавшись foreach. ну и под конец убиваем саму директорию.
Это сообщение отредактировал(а) Render - 12.3.2007, 01:18 |
|||
|
||||
incognito06 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.3.2007 Где: Казахстан, Павлод ар Репутация: нет Всего: 1 |
Господа!
А я слышал от своей училки, что есть функция в php удаляющая не пустой каталог и при этом не надо циклить перебирая и удаляя файлы по одному. {так вышло что она только после аварии, и в гипсе (почти вся ![]() Кто что скажет в дополнение? Может она ошиблась? А вообще: функция бы такая пригодилась - раз, и удалил каталог, одним махом(строочкой) - пустой ли полный каталог - без разницы. И никаких лишних циклов что характерно. |
|||
|
||||
Render |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 12.5.2005 Репутация: нет Всего: 3 |
Есть такая ф-ция, но дается она командами ОС фактически, а с этим тоже надо уметь работать! Чревато безопасностью в не умелых руках.
|
|||
|
||||
incognito06 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.3.2007 Где: Казахстан, Павлод ар Репутация: нет Всего: 1 |
Спасибо за инфу. Я так понимаю Вы подразумевали, что придёься писать отдельный CGA? И снова оговорюсь: учитель уверяла о такой функции в PHP!!! И именно с этой пометкой я спросил, не ошиблась ли она. Что по этому поводу думаете? Есть такая? (насколько мне известно - мануалы молчат по этому поводу, во всяком случае кроме rmdir конечно ) |
|||
|
||||
Render |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 12.5.2005 Репутация: нет Всего: 3 |
В UNIX:
$dir=escapeshellarg($directory); exec("rm -rf $dir"); В Винде соответственно: $dir=escapeshellarg($directory); exec("rmdir /s /q $dir"); Не забываем про escapeshellarg Удалит даже не пустой каталог, но как я уже говорил всё внимание безопасности. |
|||
|
||||
incognito06 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.3.2007 Где: Казахстан, Павлод ар Репутация: нет Всего: 1 |
Render,
Тысяча благодарностей! А в каком плане тут безопасность хворает? Хотелось бы в общих чертах как ни будь поподробнее ![]() Ну и чем это всё "лечиться". Если вообще "лечиться". ![]() |
|||
|
||||
Render |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 12.5.2005 Репутация: нет Всего: 3 |
Не забываем про escapeshellarg, escapeshellcmd. В принципе и всё.
Ну можно еще ф-цию написать которая бы фильтровала действия, аля не пропускала никаких команд кроме "rm" ну или других, в зависимости от нужд. Тут огромный простор для извращения. А exec мощная вещь, почитай в мане PHP Manual: EXEC >>> Думаю сам поймешь что к чему и возможные действия ко взлому, которые помогут тебе защититься. Как говорится идеальной защиты не существует. |
|||
|
||||
incognito06 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.3.2007 Где: Казахстан, Павлод ар Репутация: нет Всего: 1 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |