PHP: Самый Простой способ удалить папку (включая ее содержание)

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

"[^"]*"!

или:

".*?"!

различие появляется, когда у Вас есть предмет:

"one" "two"!

первые соответствия regex:

"two"!

, в то время как второй regex соответствует:

"one" "two"!

Всегда быть столь конкретным, как Вы можете. Используйте отрицаемый класс символов, когда Вы будете мочь.

Другое различие - то, что [^ "]* может охватить через строки, в то время как.* не делает, если Вы не используете однострочный режим. [^ "\n] * исключает разрывы строки также.

Что касается отслеживания в обратном порядке, второй regex отслеживает в обратном порядке для каждого символа в каждой строке, которой это соответствует. Если заключительная кавычка отсутствует, оба, которых regexes отследит в обратном порядке через весь файл. Только порядок, в котором затем отслеживают в обратном порядке, отличается. Таким образом, в теории, первый regex быстрее. На практике Вы не заметите различия.

32
задан Sam 24 October 2014 в 18:16
поделиться

2 ответа

Ну, всегда есть

system('/bin/rm -rf ' . escapeshellarg($dir));

, где есть доступ.

47
ответ дан 27 November 2019 в 19:47
поделиться

Согласно этот источник;

Сэкономьте время, если вы хотите очистить каталог или удалить его, но вы находитесь в Windows.

Используйте это :

    chdir ($file_system_path);
    exec ("del *.* /s /q");

Вы можете использовать другой синтаксис DEL или любую другую утилиту оболочки. Возможно, вам придется разрешить службе взаимодействовать с рабочим столом, так как это моя текущая настройка, и я не меняю ее, чтобы проверить это.

Или вы можете найти альтернативный метод здесь.

2
ответ дан 27 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: