Php как удалить файл .idea
Как посредством php команды с текущей директории удалить НЕ пустую папку .idea ? Мой код выглядит так.
<?php
$directory = __DIR__; // Текущая директория
// Проверяем, есть ли права на запись в директорию
if (is_writable($directory)) {
$ideaDirectory = $directory . '/.idea';
// Проверяем существование и тип (.idea - директория) перед удалением
if (is_dir($ideaDirectory)) {
// Удаляем все файлы внутри .idea
$files = glob($ideaDirectory . '/*');
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
} elseif (is_dir($file)) {
rmdir_recursive($file);
}
}
// Удаляем саму директорию .idea
if (rmdir($ideaDirectory)) {
echo "Директория $ideaDirectory успешно удалена.<br>";
} else {
echo "Ошибка при удалении директории $ideaDirectory.<br>";
}
} else {
echo "Директория $ideaDirectory не существует или не является директорией.<br>";
}
echo "Операция завершена.";
} else {
echo "Нет прав на запись в текущей директории.";
}
Но он не срабатывает. Почему ?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($files as $fileinfo) {
$todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink');
$todo($fileinfo->getRealPath());
}
rmdir($dir);
Для линуксов мне кажется было бы проще так:
shell_exec('rm -r ПУТЬ/ДО/ДИРЕКТОРИИ')