Работа с директориями
В PHP есть набор функций для работы с директориями, получение списка файлов в папке, копирование и удаление содержимого папок.
Функции для работы с директориями
mkdir()
создаёт директорию с указанным именем, подробнееrmdir()
удаляет директорию с указанным именем. Удаляет только пустые директории. Если директория не пуста, сначала нужно удалить всё её содержимое, подробнееscandir()
читает содержимое директории и возвращает массив, содержащий имена файлов и поддиректорий, подробнееrename()
используется для перемещения и переименования директорий, подробнееis_dir()
определяет, является ли указанный путь директорией, подробнееfile_exists()
проверяет, существует ли файл или директория с указанным именем, подробнееopendir()
,readdir()
,closedir()
предоставляют более низкоуровневый способ чтения содержимого директории. Позволяют открывать директорию, читает содержимое по одному элементу, закрывать директорию после завершения работы подробнее
Создаёт директорию с указанным именем, mkdir ()
Для создания каталога используется функция mkdir()
:
<?
if (rmdir("newdir")) {
echo "Каталог удален";
} else {
echo "Ошибка при удалении каталога";
};
В данном случае mkdir
создает новый каталог newdir
в текущем каталоге. Если создание пройдет успешно, то функция возвращает значение true
, иначе — false
Для создания новой папки в корневом каталоге можно использовать выражение mkdir("/newdir")
.
Удаляет директорию с указанным именем, rmdir ()
Для удаления каталога применяется функция rmdir()
. Ее использование аналогично mkdir()
:
<?
if(rmdir("newdir")) {
echo "Каталог удален";
} else {
echo "Ошибка при удалении каталога";
};
Cоздание директории с указанным именем, scandir ()
Функция scandir()
, возвращает массив в котором будут «.
», «..
» и есть возможность сортировки.
<?
function list_files($path)
{
if ($path[mb_strlen($path) - 1] != '/') {
$path .= '/';
}
$files = array();
$dh = opendir($path);
while (false !== ($file = readdir($dh))) {
if ($file != '.' && $file != '..' && !is_dir($path.$file) && $file[0] != '.') {
$files[] = $file;
}
}
closedir($dh);
return $files;
}
print_r(list_files(__DIR__));
Перемещение и переименование директорий, rename ()
С помощью функции rename()
можно переименовывать папки:
<?
rename('old', 'new');
Определяет, является ли указанный путь директорией, is_dir ()
Пусть у вас есть строка, содержащая путь к папке. С помощью специальной функций is_dir()
мы можем отличить, ссылается путь на папку:
<?
$path = 'путь';
// true для папки, false для файла
var_dump(is_dir($path));
Проверяет, существует ли файл или директория с указанным именем, file_exists ()
Проверить существование файла или каталога в PHP можно с помощью функции file_exists()
. Она принимает путь к файлу или каталогу и возвращает TRUE
, если файл или каталог существует, иначе возвращает FALSE
:
<?
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "Файл $filename существует";
} else {
echo "Файл $filename не существует";
}
Низкоуровневая работа с файлами opendir (), readdir (), closedir ()
Эти функции предоставляют более низкоуровневый способ чтения содержимого директории. Они позволяют открывать директорию, читать её содержимое по одному элементу и закрывать директорию после завершения работы.
<?
$path = 'some_directory';
if ($handle = opendir($path)) {
while (false !== ($entry = readdir($handle))) {
echo $entry . "\n";
}
closedir($handle);
}