• Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта


Иллюстрированный самоучитель по PHP

Файл do.php

Удаление, выполнение действия

Для удаления файлов в РНР существует специальная команда – unlink.

Примечание
Команда unlink (имя файла с полным путем к нему) удаляет файл, указанный в ее параметре. Если этого сделать не удастся – выводит на страницу сообщение об ошибке
.

Команда rmdir (имя директории с полным путем к ней) удаляет указанную в ее параметре директорию, если она пустая. Если удаляемая папка не пуста или сценарий не имеет прав на удаление директории, то на страницу выводится сообщение об ошибке.

Удалить этой командой файлы, чьи имена переданы со страницы запроса подтверждения удаления – дело трех строк кода. Однако наш сценарий, если вы помните, позволяет удалять и целые директории. Пустую директорию можно удалить командой rmdir, – но вот как сделать директорию пустой, как ее очистить от содержимого? Ведь в директории могут быть и вложенные папки, а в них – тоже вложенные.

И снова используем рекурсию. Вот как выглядит рекурсивный алгоритм удаления всего содержимого папки:

function delfiles($fId)
$hdl=opendir($fld); while ($file = readdir($hdl)) {
if (($file!=".")&&($file!="..")) {
if (is_dir($fld."/".$file)==True) {
delfiles ($fId."/".$file); rmdir ($fld."/".$file); }
else {
unlink ($fld."/".$file); } } }
closedir($hdl);
}

Проанализируйте его сами. Думаю, вы легко поймете логику его работы: указанная в параметре функции папка сканируется сценарием, разобранным в главе "Папкопотрошилка", и если очередной найденный в ней объект является файлом, то он удаляется, а если объект представляет собой папку, то вызывается эта же функция, но в качестве параметра ей на сей раз передается имя этой папки. Рано или поздно функция дойдет до папок, содержащих одни файлы, и рекурсия начнет прерываться. После удаления всех файлов в папке удаляется и сама папка, так как она уже пустая.

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

Если в качестве действия выбрано удаление…

if ($udal!="")

…то каждый обьект, имя которого передано из формы на странице запроса подтверждения на удаление…

foreach ($fl as $i)

…проверим на то, не является ли он директорией.

if (is_dir($folder."/".$i)==True)
{

Если является, то удалим все файлы в этой директории – рекурсивной функцией delfiles…

delfiles ($folder."/".$i);

…а затем и саму, уже опустошенную директорию – командой rmdir.

rmdir ($folder."/".$i); }

А если этот объект, подлежащий удалению, является обычным файлом…

else

…то для него припасена уже упомянутая выше команда unlink:

unlink ($folder."/".$i); }
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.