Удаление файлов Php по маске
Обновлено: 21.11.2024
Недавно я хотел удалить расширения со своего веб-сайта, чтобы сделать URL-адреса более удобными для пользователей и поисковых систем. Я наткнулся на учебники о том, как удалить расширение .php со страницы PHP. А как насчет .html? Я тоже хотел их убрать! В этом уроке я покажу вам, как легко это сделать, отредактировав файл .htaccess.
Что такое файл .htaccess
Файл .htaccess – это простой файл ASCII, который вы создаете с помощью текстового редактора, такого как Блокнот или TextEdit. Этот файл сообщает серверу, какие изменения конфигурации необходимо внести для каждого каталога.
Обратите внимание, что .htaccess — это полное имя файла. Это не file.htaccess, это просто .htaccess.
Важно помнить, что это можно обойти. Если вы не хотите, чтобы определенные команды .htaccess влияли на определенный каталог, поместите новый файл .htaccess в каталог, который вы не хотите затронуть изменениями, и удалите определенные команды из нового файла.
Возможности
С файлом .htaccess вы можете:
- Перенаправить пользователя на другую страницу
- Защитите паролем определенный каталог
- Блокировать пользователей по IP
- Предотвращение горячих ссылок на ваши изображения
- Переписать URL
- Укажите свои собственные документы об ошибках
В этом руководстве мы сосредоточимся только на перезаписи URL-адресов.
Удаление расширений
Вот оно! Теперь вы можете связывать страницы внутри HTML-документа без необходимости добавлять расширение страницы. Например:
Добавление косой черты в конце
Игнорируйте первый фрагмент и вставьте приведенный ниже код. Первые четыре строки связаны с удалением расширения, а следующие — с добавлением завершающей косой черты и перенаправлением.
Ссылка на файл HTML или PHP так же, как показано выше. Не забудьте изменить код, если хотите, чтобы он применялся к файлу HTML, а не к PHP.
Некоторые люди спрашивали, как удалить расширение из файлов HTML и PHP. У меня нет решения для этого. Но вы можете просто изменить расширение вашего HTML-файла с .html или .htm на .php и добавить код для удаления расширения .php.
Заключение
Для тех, кто не очень разбирается в файлах .htaccess, есть онлайн-инструмент для их создания. Он полезен для начинающих пользователей и прост в использовании.
Обновления
Внимание пользователей GoDaddy: чтобы удалить расширения, вам нужно включить MultiViews раньше. Код должен выглядеть так:
Если вы беспокоитесь, что поисковые системы могут индексировать эти страницы как дублирующийся контент, добавьте метатег в свой HTML-файл:
Если у вас есть имя файла, из которого нужно удалить расширение с помощью PHP, это можно сделать несколькими способами. Вот три способа с небольшим сравнением.
Использование информации о пути
Функция pathinfo() возвращает массив, содержащий имя каталога, базовое имя, расширение и имя файла. Кроме того, вы можете передать ему одну из констант PATHINFO_ и просто вернуть эту часть полного имени файла:
Если имя файла содержит полный путь, возвращается только имя файла без расширения.
Использование базового имени
Если расширение известно и одинаково для всех имен файлов, вы можете передать второй необязательный параметр в функцию basename(), чтобы удалить это расширение из имени файла:
Если имя файла содержит полный путь, возвращается только имя файла без расширения.
Использование substr и strrpos
Если имя файла содержит полный путь, возвращается полный путь и имя файла без расширения. Вы также можете использовать basename(), чтобы избавиться от пути, если это необходимо (например, basename(substr($filename, 0, strrpos($filename, ".")))) хотя это медленнее, чем использование pathinfo.
Сравнение
Выполнение каждого из них в цикле 10 000 000 раз на моем Mac с PHP 5.4:
pathinfo: 10,13 секунды
basename: 7,87 секунды
substr/strrpos: 6,05 секунды
basename(substr/strrpos): 11,98 секунды
Если имя файла не содержит полного пути или не имеет значения, если он есть, то вариант substr/strrpos будет самым быстрым.
Если имя файла содержит путь, и вам не нужен путь, но вы знаете, какое расширение вы хотите удалить, тогда базовое имя окажется самым быстрым.
Если имя файла содержит путь, путь вам не нужен и вы не знаете, какое у него расширение, используйте параметр pathinfo().
Заключение
Есть много других способов сделать это, и некоторые из них могут быть быстрее. Во многих случаях скорость, вероятно, не имеет большого значения (в конце концов, 10 секунд для запуска pathinfo были 10 миллионов раз); целью этого поста было показать несколько способов удаления расширения из имени файла с помощью PHP.
Добро пожаловать в учебник по удалению файлов в PHP. Нужно удалить некоторые старые, резервные или временные файлы в PHP?
- Чтобы удалить файл в PHP, используйте unlink("TARGET FILE");
- Чтобы удалить пустую папку, используйте rmdir("FOLDER");
Это охватывает супербыстрые основы, но «расширенное удаление» целых папок и только определенных типов файлов — это совсем другая история. Как мы это делаем? Читайте дальше, чтобы увидеть больше примеров!
ⓘ Я включил zip-файл со всем исходным кодом примера в начале этого руководства, поэтому вам не нужно копировать и вставлять все… Или если вы просто хотите сразу погрузиться.
БЫСТРЫЕ СЛАЙДЫ
СОДЕРЖАНИЕ
СКАЧАТЬ И ПРИМЕЧАНИЯ
Во-первых, вот ссылка для загрузки примера кода, как и было обещано.
БЫСТРЫЕ ЗАМЕЧАНИЯ
Если вы заметили ошибку, не стесняйтесь комментировать ниже. Я тоже стараюсь отвечать на короткие вопросы, но это один человек против всего мира... Если вам срочно нужны ответы, посмотрите мой список веб-сайтов, чтобы получить помощь по программированию.
СКАЧАТЬ ПРИМЕР КОДА
Нажмите здесь, чтобы загрузить исходный код. Я выпустил его под лицензией MIT, так что не стесняйтесь строить на его основе или использовать в своем собственном проекте.
СПОСОБЫ УДАЛИТЬ ФАЙЛЫ В PHP
Хорошо, теперь давайте перейдем к примерам удаления файлов в PHP.
1) ПРОСТОЕ УДАЛЕНИЕ
Как и во введении выше, мы используем unlink() для удаления файлов и rmdir() для удаления каталогов. Обратите внимание, что обе функции на самом деле возвращают значение true/false, чтобы указать, успешно ли прошел процесс; Файлы, защищенные от копирования, не могут быть удалены, а папки, которые не являются пустыми, не могут быть удалены.
2) УДАЛИТЬ, ЕСЛИ ФАЙЛ СУЩЕСТВУЕТ
PHP выдает надоедливые предупреждения при удалении несуществующих файлов. Итак, вот «быстрое решение» — просто выполните проверку file_exists(), прежде чем приступить к удалению.
3) УДАЛИТЬ ТОЛЬКО ОПРЕДЕЛЕННЫЕ ТИПЫ ФАЙЛОВ
Хотите удалить только определенные типы файлов в папке? Используйте функцию glob(), чтобы отфильтровать список выбранных файлов, а затем удалите их один за другим.
4) УДАЛИТЬ ФАЙЛЫ, ТОЛЬКО ЕСЛИ СТАРШЕ УСТАНОВЛЕННОЙ ДАТЫ
Хотите удалить некоторые старые резервные копии или устаревшие файлы? Это почти та же история с использованием старого доброго glob() для получения списка файлов в папке. Затем используйте filemtime() для проверки времени «последнего изменения файла». Удалите файл, если он старше установленной даты.
5) УДАЛИТЬ ПАПКУ ВСЮ
Одна из самых запутанных, так как мы не можем просто использовать rmdir(), чтобы удалить всю папку напрямую. Не буду объяснять это построчно, но, по сути, delFolder() — это рекурсивная функция, которая копается в заданной папке и удаляет все, что внутри.
6) УДАЛЕНИЕ КОМАНДНОЙ СТРОКИ
Наконец, это не совсем «удаление в PHP»… Но мы действительно можем запускать команды оболочки в PHP для удаления файлов и папок.
ПОЛЕЗНЫЕ ИНФОРМАЦИИ И ССЫЛКИ
Это все, что касается основного руководства, и вот небольшой раздел с дополнительными материалами и ссылками, которые могут быть вам полезны.
РЕЗЮМЕ
БОЛЬШЕ ССЫЛОК
ИНФОГРАФИЧЕСКАЯ Шпаргалка
КОНЕЦ
Спасибо, что прочитали, и мы подошли к концу этого руководства. Я надеюсь, что это помогло вам с вашим проектом, и если вы хотите поделиться чем-либо с этим руководством, пожалуйста, не стесняйтесь комментировать ниже. Удачи и удачного кодирования!
Оставить комментарий Отменить ответ
Поиск
сообщить об этом объявлении
Прорыв в Javascript
Сфотографировать с помощью веб-камеры? Голосовые команды? Видеозвонки? Да, это возможно с помощью Javascript — ознакомьтесь с прорывом Javascript!
сообщить об этом объявлении
В этой статье мы покажем, как удалить файл с помощью PHP.
Удаление файлов может потребоваться по многим причинам.
Удаление файла означает, что вы полностью стираете его из каталога, так что файл больше не существует.
Так как же это делается с помощью PHP?
В PHP есть функция unlink(), которая позволяет нам удалить файл.
Итак, PHP-код для удаления файла показан ниже.
Итак, приведенный выше код очень прост. Это одна строка.
Функция PHP delete() принимает один параметр.
Параметр — это файл, который мы хотим удалить. В этом параметре мы должны указать имя файла вместе с его расширением. Не оставляйте расширение файла, иначе функция не будет работать.
Итак, это все, что требуется для удаления файла.
Несмотря на то, что приведенный выше код очень эффективен и выполняет работу по удалению файла, часто нам хотелось бы добавить к нему что-то еще, чтобы получить больше информации.Например, существует ли файл, который мы хотим удалить? Если файл существует, был ли он успешно удален?
Приведенный ниже PHP-код удаляет файл и предоставляет нам дополнительную информацию.
Этот код теперь более прямолинеен. Это говорит нам больше.
Сначала мы смотрим, существует ли файл. Если файл существует, код переходит к следующей строке. В этой строке мы создаем переменную с именем $deleted. Эта переменная содержит результат функции разъединения PHP. Если файл был успешно удален, переменная $deleted будет содержать значение 1 или TRUE. Если это не так, переменная $deleted будет содержать значение 0 или FALSE. Если файл успешно удален, выводится строка «Файл успешно удален». Если нет, выводится строка "Файл не был успешно удален".
Если файл не существует, выводится строка "Исходный файл, который вы хотите удалить, не существует".
Итак, приведенный выше код говорит нам обо всем. Он сообщает нам, существует ли файл, который мы хотим удалить. И он сообщает нам, было ли удаление файла успешным или нет.
И это все, что требуется для удаления файла с помощью PHP.
Как удалить все файлы в каталоге с определенным критерием или критериями
Приведенный выше код великолепен и хорошо работает. Но истинная красота этой PHP-функции delete(), если вы хотите воспользоваться ее истинной красотой, заключается в том, что она может удалить все файлы в каталоге, соответствующем определенному критерию или определенным критериям.
Скажем, у вас есть список файлов, в которых есть слово "HTML4", например "Как создать горизонтальную линию с помощью HTML4", "Как создать абзац". -using-HTML4" и "How-to-create-an-anchor-tag-using-HTML4", и вы обновили себя до всего HTML5 и решили, что хотите удалить все файлы с HTML4.
Представьте, что у вас есть 70 таких файлов. Представьте, если бы у вас были сотни. Вам придется просмотреть каждый из этих файлов и удалить их вручную.
В этом прелесть PHP-функции unlink().
С помощью одного блока кода мы можем удалить все эти файлы менее чем за минуту, вместо того, чтобы вручную делать это часами или днями.
Так как же пройтись по всем файлам в каталоге и удалить нужные файлы?
Итак, этот код выполняет поиск в каталоге статей. Конечно, вы можете указать любой каталог на своем веб-сайте.
Код PHP проверяет, является ли это каталогом. Если это так, он открывает каталог. Цикл while перебирает все файлы в каталоге.
Затем мы пишем оператор if, чтобы узнать, содержит ли каждый файл фразу "HTML4". Если это так, мы удаляем файл с помощью функции PHP unlink().
Читайте также: