Удалить файл в PHP
В PHP вы можете использовать unlink() Функция для удаления файла из файловой системы. Он работает аналогично Unix C unlink() функция.
$file = ‘/path/to/directory/file.txt’ ;
unlink ( $file ) ;
Если указанный файл является символической ссылкой, unlink() функция удаляет его. Если файл не существует, будет выдано предупреждение PHP. Возможно, вы захотите проверить, существует ли файл или нет, прежде чем вызывать unlink() функция. Это можно сделать с помощью file_exists() функция.
$file = ‘/path/to/directory/file.txt’ ;
if ( file_exists ( $file ) ) <
unlink ( $file ) ;
echo "File deleted successfully" ;
echo "File not found" ;
Кроме того, если файл является каталогом, unlink() функция выдаст предупреждение PHP. Желательно сначала проверить, является ли указанный файл каталогом или нет. Это можно сделать с помощью is_dir() функция, которая возвращает логическое значение в зависимости от результата.
$file = ‘/path/to/directory/file.txt’ ;
if ( file_exists ( $file ) && ! is_dir ( $file ) ) <
unlink ( $file ) ;
echo "File deleted successfully" ;
echo "File not found or it is a directory" ;
Если вы хотите удалить несколько файлов, вы можете сделать это в цикле. Чтобы проиллюстрировать это, следующее решение выполняет итерацию по массиву имен файлов и удаляет каждый файл по отдельности, используя unlink() .
$dir = ‘/path/to/directory’ ;
$files = [ ‘1.txt’ , ‘2.txt’ , ‘3.txt’ ] ;
foreach ( $files as $file )
if ( file_exists ( «$dir/$file» ) && ! is_dir ( «$dir/$file» ) ) <
unlink ( "$dir/$file" ) ;
echo "File $file not found or it is a directory" ;
Это все, что нужно для удаления файла в PHP.
Оценить этот пост
Средний рейтинг 5 /5. Подсчет голосов: 1
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Удаление файлов с помощью 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, то необходимо не только создавать файлы, но и удалять их. В краткой заметке я расскажу, как удалить один или несколько файлов в 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)
Очистить файл не удаляя его можно двумя способами, при помощи функций fopen() , fclose() и при помощи функции file_put_contents() .
В первом случае файл открывается на запись при помощи флага «w» и обнуляется, во втором случае просто передается пустая строка для записи.
Пример
Например есть файл toclean.txt , содержимое которого нужно удалить.
✖ ❤ Мне помогла статья 2 оценки
19746 просмотров нет комментариев Артём Фёдоров 06 апреля 2012
Категории
Читайте также
- Как очистить папку (PHP)
- Как дописать в конец файла (PHP)
- Как создать файл (PHP)
- Дата изменения файла (PHP)
- Как скопировать файл (PHP)
- Как проверить права доступа (PHP)
- Список файлов в папке (PHP)
- Массив в JSON (PHP)
- Как на PHP скачать файл
- Как записать массив в файл (PHP)
- Скачать файл с сервера (PHP)
- Удалить все атрибуты кроме (PHP)
Комментарии
Написать комментарий
© Экспэнч 2010-2023
При полном или частичном копировании статей сайта указывайте пожалуйста ссылку на источник
Хотите узнать больше информации, пишите на: artem@expange.ru
Вход на сайт
Введите данные указанные при регистрации:
Социальные сети
Вы можете быстро войти через социальные сети:
