Php delete html file

Сценариев для удаления файла через PHP — масса. Например, это может быть временный файл, который создаётся при добавлении функционала регистрации на сайте. Или вы хотите заменить изображение товара на новое (перед загрузкой нового изображения потребуется удалить предыдущее). В перечисленных и других случаях на помощь придёт функция unlink.

Функция unlink() в PHP используется для удаления файла. Стандартно, происходит возврат TRUE — при успешной попытке и FALSE — при неуспешной.

Простой пример

unlink("myfile.txt"); // Удаление
  • file_path — используется для задания пути к объекту, который необходимо удалить. В случаях когда параметр содержит символическую ссылку — она автоматически удаляется.
  • context — используется для задания ресурса (по сути, это набор параметров и соответствующих опций, так называемый контекст). Параметр появился в PHP, начиная с пятой версии

В чем отличие от unset

В PHP unlink() — функция для работы с файловой системой, она используется для удаления файлов. Предположим, вы загрузили объект и хотите его удалить в дальнейшем, тогда unlink() вполне подойдёт (когда речь заходит о кодировке).

unset() — функция не для работы с файловой системой, а для управления переменными. Простыми словами, она делает переменную неопределенной, обнуляя её значение. Таким образом, unset() используется для уничтожения переменной в PHP.

На практике функция может использоваться для удаления одной переменной, нескольких переменных или элемента из массива.

 $file_pointer = "my.txt"; 
if (!unlink($file_pointer)) echo ("Файл не может быть удалён!");
> else echo ("Файл удален!");
>
?>
Файл не может быть удалён!

Изучение способов удаления принесет вам пользу в долгосрочной перспективе. Ну а чтобы пользы было ещё больше — успейте записаться на курс бэкенд-разработчик от Loft.

Примеры

Давайте посмотрим разные сценарии: удаление единичного файла, объектов в папке и по их маске.

Удаление одного файла

Если на сервере существует единственный файл, который нужно стереть, можно использовать элементарную конструкцию:

*Обратите внимание, что путь указывается в следующем формате:

"/home/user/www/test.ru/blog/temlfile.html"

Таким образом, файл с именем tempfile.html, в результате выполнения, будет удалён.

Удаление всех файлов в папке

Удалить можно и все объекты внутри папки. Допустим: у нас есть папка с временными файлами. Пусть папка будет иметь условное название temp. Для удаление всех файловых объектов внутри неё вы можете использовать конструкцию вида:

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

В результате выполнения этого кода объекты, содержащиеся внутри этого пути, будут стерты:

Читайте также:  Python if last in loop

Удаление по маске

Удалить через PHP можно также с учётом необходимой вам маски. Допустим, требуется удалить все файлы с расширением .TXT в какой-то конкретный директории. Используем конструкцию следующего вида

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

В результате все объекты внутри, имеющие расширение .TXT, будут стерты из папки temp.

Вывод

Вместо вывода — дадим ещё несколько примеров удаление через PHP, чтобы лучше закрепить тему.

Удаление существующего файлового объекта

Допустим, нам нужно удалить файл test.txt, если он существует. Мы реализовали этот сценарий следующим образом:

 //Назначим имя 
$filename = "test.txt";
//Проверим существование
if(file_exists($filename))
//Удалим
if (!unlink($filename)) echo ("
Во время удаления $filename file произошла ошибка");
>
else echo ("
The $filename файл был удален.");
>
>
else
echo "
The $filename файл не существует.";
?>
  • Для проверки наличия требуемого объекта мы используем функцию file_exists().
  • Если файл существует в текущем каталоге, он будет удален.
  • Если его не существует — PHP сообщит об ошибке.

Удаление всех файлов и папок из каталога

Каталог может включать в себя один или сразу несколько подкаталогов, внутри которых также могут содержаться файлы (либо папки]. Если нужно стереть какой-либо каталог, предварительно необходимо удалить все файлы внутри него. Представим подобный сценарий:

 //Установим путь к каталогу 
$dir_path = "test";
//Определим функцию для рекурсивного удаления каталога
Dir($path) //Проверим существование подкаталога
$files = glob($path . '/*');
//Проверим является ли значение файлом или папкой
foreach ($files as $file) is_dir($file) ? removeDir($file) : unlink($file);
>
//Удалим каталог
rmdir($path);
//Вернет TRUE
return 1;
>
//Проверим возвращаемое значение функции
if(removeDir($dir_path))
echo "Все файлы и папки, включенные в $dir_path директорию, были удалены.";
else
echo "Во время удаления произошла ошибка.";
?>
  • Чтобы удалить все папки и файлы, которые содержатся внутри каталога с названием temp, мы задействуем функцию removeDir().
  • Каталог будет автоматически стёрт сразу после того, как он станет пустым.

Удаление файла после создания

Допустим нам необходимо удалить файл с названием test.txt. Вот как это можно сделать:

 //Назначим имя 
$filename = "test.txt";
//Открываем для записи
$fh = fopen($filename, 'w+');
//Напишем какой-нибудь текст внутри
fwrite($fh, 'Добро пожаловать!');
fclose($fh);
//Проверим существует ли
if(file_exists($filename))
echo "
The $filename file exists.";
//Удалим
if(!unlink($filename)) echo ("
Во время удаления $filename file произошла ошибка");
>
else echo ("
Файл $filename был успешно удален.");
>
>
else
echo "
Файл $filename не найден.";
?>
  • Для проверки создания объекта применена функция file_exists().
  • Когда объект найден в указанном каталоге — он автоматически стирается.
  • Удаление происходит через функцию unlink().
  • Если объект в указанной директории не найден — вернётся ошибка.

Удаление всех файлов из определенного каталога

Допустим нам необходимо удалить все файлы из условного каталога, который называется «test/video». Вот как можно представить этот сценарий:

 //Установим путь к каталогу 
$dir_path = "test/video";
//Проведем поиск по всем файлам в указанном каталоге
foreach (glob($dir_path."/*.*") as $filename)
//Выведем имя и его размер
echo "
Название файла $filename";
echo "
Размер файла ".filesize($filename)." байт.";
//Удалим
if (!unlink($filename))
echo ("
Во время удаления файла $filename произошла ошибка.");
else
echo ("
Файл $filename был успешно удален.");
>
  • Как и в примере до этого, название и фактический размер выводятся непосредственно перед удалением.
  • Для маркировки разных видов расширений мы применили маску вида «*.*».
Читайте также:  Json file input python

Хотите стать крутым и востребованным веб-разработчиком? У нас есть специализированный курс!

Источник

Php delete html file

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

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

где $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?»

Источник

6 Ways To Delete Files In PHP (Simple Examples)

Welcome to a tutorial on how to delete files in PHP. Need to remove some old, backup, or temporary files in PHP?

  • To delete a file in PHP, use unlink(«TARGET FILE»);
  • To remove an empty folder, use rmdir(«FOLDER»);

That covers the super quick basics, but “advanced deleting” entire folders and only certain file types is a different story. Just how do we do those? Read on for more examples!

TLDR – QUICK SLIDES

How To Delete Files In PHP

TABLE OF CONTENTS

WAYS TO DELETE FILES IN PHP

All right, let us now get into the examples of how to delete files in PHP.

1) SIMPLE DELETE

As in the introduction above, we use unlink() to delete files and rmdir() to remove directories. Take note that both functions will return true/false to indicate if the process is successful.

P.S. Copy-protected files cannot be deleted, and folders that are not empty cannot be removed.

2) DELETE IF FILE EXISTS

PHP will throw warnings when deleting files that do not exist. So here is a “quick fix” – Just do a file_exists() check before proceeding with the delete.

3) DELETE ONLY CERTAIN FILE TYPES

", GLOB_BRACE); // (B) LOOP AND DELETE if (count($files)>0) < foreach ($files as $f) < unlink($f); >>

Only want to clear out certain file types in a folder? Use the glob() function to help filter out a list of the selected files, then delete them one by one.

Читайте также:  Execute php что возвращает

4) DELETE FILES ONLY IF OLDER THAN A SET DATE

Want to remove some old backups or outdated files? It’s pretty much the same story of using good old glob() to get the list of files in the folder. Then using filemtime() to check against the “file last modified” time – Delete the file if it is older than a set date.

5) DELETE THE ENTIRE FOLDER

0) < foreach ($all as $a) < if (is_dir($a)) < delFolder("$a/"); >else < echo unlink($a); >>> // (A3) DELETE CURRENT FOLDER ITSELF rmdir($folder); > // (B) GO! delFolder("d:/test/");

Since we can’t use rmdir() to delete an entire folder directly, we have to create a recursive function that will dig into the sub-folders and delete everything inside.

6) COMMAND LINE DELETE

Finally, this is not quite “delete in PHP”… But we can actually run shell commands in PHP to delete files and folders.

DOWNLOAD & NOTES

Here is the download link to the example code, so you don’t have to copy-paste everything.

SUPPORT

600+ free tutorials & projects on Code Boxx and still growing. I insist on not turning Code Boxx into a «paid scripts and courses» business, so every little bit of support helps.

EXAMPLE CODE DOWNLOAD

Click here for the source code on GitHub gist, just click on “download zip” or do a git clone. I have released it under the MIT license, so feel free to build on top of it or use it in your own project.

That’s all for the main tutorial, and here is a small section on some extras and links that may be useful to you.

THE SUMMARY

INFOGRAPHIC CHEAT SHEET

THE END

Thank you for reading, and we have come to the end of this guide. I hope that it has helped you with your project, and if you want to share anything with this guide, please feel free to comment below. Good luck and happy coding!

Leave a Comment Cancel Reply

Breakthrough Javascript

Take pictures with the webcam, voice commands, video calls, GPS, NFC. Yes, all possible with Javascript — Check out Breakthrough Javascript!

Socials

About Me

W.S. Toh is a senior web developer and SEO practitioner with over 20 years of experience. Graduated from the University of London. When not secretly being an evil tech ninja, he enjoys photography and working on DIY projects.

Code Boxx participates in the eBay Partner Network, an affiliate program designed for sites to earn commission fees by linking to ebay.com. We also participate in affiliate programs with Bluehost, ShareASale, Clickbank, and other sites. We are compensated for referring traffic.

Источник

Оцените статью