Как удалить файл php
Перейти к содержимому

Как удалить файл php

  • автор:

Как удалить файл php

Когда строишь какие-то системы для управления контентом на PHP, то необходимо не только создавать файлы, но и удалять их. В краткой заметке я расскажу, как удалить один или несколько файлов в PHP.

Удалить один файл на сервере в PHP

Для удаления одного файла с сервера в PHP необходимо просто воспользоваться командой:

unlink($filepath)

где $filepath — это путь к файлу вида «/home/user/www/mysite.ru/test/testphpfiletodelete.html».
В результате файл testphpfiletodelete.html будет удалён с сервера.

Более подробно про функцию unlink() можно прочитать в официальной документации по PHP .

Для автоматического формирования пути к файлу я бы советовал использовать вот такую конструкцию:

$filepath = dirname(__FILE__).'/test/testphpfiletodelete.html';

dirname(__FILE__) в данном случае сформирует путь к директории, в которой находится исполняемый PHP скрипт.

Удалить все файлы в папке (директории) через PHP

Для удаления всех файлов, например, из папки /test/ (находящейся в корне сайта) можно выполнить всего одну команду на PHP:

array_map('unlink', glob(dirname(__FILE__).'/test/*'));

Данная командой найдёт все файлы в директории test (glob(dirname(__FILE__).’/test/*’)) и удалит каждый из них уже знакомой функцией unlink().

Удалить файлы по маске (через PHP)

Если же необходимо удалить не все файлы, а только определенные (например, все .html файлы в данной директории), то можно дополнить команду выше вот таким образом:

array_map('unlink', glob(dirname(__FILE__).'/test/*.html'));

Теперь выражение *.html выберет любые файлы с расширением html и, аналогично примеру выше, удалит их.

Виталий Жуков 16.05.2019

Все комментарии к заметке «Как удалить файл через PHP?»
  • Комментариев еще нет.
    Оставьте свой комментарий первым!

Удаление файлов с помощью php

Есть папка images , в ней 100000 файлов. 10000 нужно удалить. Имена файлов известны. Чтобы удалить один файл:

 else < echo "Ошибка при удалении файла"; >?> 

Чтобы удалить несколько, думала будет так:

Но удаляется только последний указанный файл из files.txt . Что нужно подправить, чтобы все удалились?

Отслеживать
user282693
задан 4 апр 2012 в 15:18
23 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
Фрагментация же
4 апр 2012 в 20:09

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

 fclose($f); echo 'deleted: '.$del; > else echo 'error'; ?> 

Попробуйте так. Вообще косяк только в отсутствии trim() , так как функция file() разбивает текст по \n , соответственно пробелы-табуляции и виндовское \r остается в предполагаемом имени файла. Но пути /images/123.jpg\r естественно нет) Ну и оптимизация — нехорошо грузить массив из 10000 строк в память при наличии другого способа.

Отслеживать
ответ дан 4 апр 2012 в 17:01
14.3k 1 1 золотой знак 21 21 серебряный знак 35 35 бронзовых знаков
Спасибо, так все отлично работает. >при наличии другого способа Это Вы о чем? Об удалении вручную?
5 апр 2012 в 7:10

Как понимаю, имена всех файлов, которые надо удалить, лежат здесь: ‘./files.txt’ Так вот, функция file() читает файл не построчно, а целостно, то есть одним фрагментом. Данная функция практически идентична file_get_contents() . Чтобы удалить все файлы, надо сначала прочитать содержимое ‘./files.txt’ , а затем разбить его построчно на фрагменты (1 фрагмент = 1 имени файла). Сделать это можно с помощью регулярок, но еще легче так:

UPD:

Но даже после этих маниуляций препроцессор PHP выдаст вам сообщение об ошибке! Это произойдет потому, что 10000 файлов не смогут удалиться в течение установленного лимита( по умолчанию = 30 сек.). Тут вам уже придется подумать и понять, что можно разбить удаление файлов на 3-5 шагов (1 шаг = 1 обновление страницы) и в каждом шаге удалять 10000/n файлов(n — кол-во шагов).

P.S Вообще в PHP не стоит работать с такими большими массивами данных. PHP создан для быстрого доступа и анализа поступаемых данных, а не для выполнения рутины, поэтому лучше позаботьтесь о своевременном удалении файлов, когда их ещё мало.

Как удалить файл в PHP

PHP — язык программирования, в основном используемый для создания динамических web-страниц. Равно как и любой другой язык программирования, PHP содержит массу возможностей, среди которых очень много полезных. К примеру, возможность удаления файла, которую вы можете использовать в ваших скриптах.

Этот совет поможет вам узнать, как удалить файл в PHP при помощи функции unlink.

  1. Создайте текстовый файл в текстовом редакторе (vi/vim, nano, gedit или просто в стандартном Блокноте).
  2. Наберите или просто скопируйте в него следующий код:
  3. Сохраните (к примеру под именем testunlink.php) и разместите созданный файл скрипта на вашем тестовом web-сервере. В этом же каталоге создайте файл example.log с любым содержимым. Именно его мы и будем удалять.
  4. Запустите скрипт, вызвав его в браузере, и, посмотрев вновь в каталог, вы обнаружите, что файла example.log там больше нет. Unlink сделал свое дело!
Как это все работает:

Первая строка кода скрипта: определяем тип нашего скрипта.

Вторая строка кода: После запуска созданного нами скрипта, переменной file будет присвоено значение example.log (обратите внимание, что файл с одноименным названием должен присутствовать в том же каталоге, что и созданный нами скрипт. Просто создайте его с любым содержимым!).

Третья строка кода: Удаляем файл example.log, передав его в качестве аргумента функции unlink.

Четвертая строка кода скрипта: конец кода php.

Остались вопросы?

Если у Вас что-то не получилось или остались вопросы по данной проблеме — обратитесь к автору и он Вам поможет.

Станьте одним из экспертов!

Мы будем рады видеть в своих рядах людей, которые могут поделиться своим опытом с другими!

Linux (любые дистрибутивы), MS Windows, Cisco, Python и многое другое.

Более чем 20-летний опыт в IT позволяет мне давать Вам мудрые советы.

Как удалить файл php

Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2018

Помог: 0 раз(а)

Здравствуйте.
Прошу помощи. Я совсем зелёный в программировании!

$bcol=»BLUE»;
$reg=»VPBJB»;
echo «

    «.Button(«Удалить Файл»,»Удалить файлик»,$bcol,2,»PopDel(\»docs/acftdocs/».$reg.»_LS.pdf\»)»).»

«;
?>

Функция выдаёт путь к файлу — docs/acftdocs/VPBJB_LS.pdf

Вопрос — как возможно УДАЛИТЬ этот файл с диска. СпасибО.

Отправлено: 12 Марта, 2018 — 11:41:58

Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014

Помог: 30 раз(а)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *