Управление файлами
Перемещение файла
Для перемещения файла применяется функция rename()
:
<?
if (!rename("hello.txt", "subdir/hello.txt")) {
echo "Ошибка перемещения файла";
} else {
echo "Файл перемещен"
};
Если у нас в каталоге файла hello.txt имеется подкаталог subdir, то
файл будет в него перемещен. Если файл был успешно перемещен, функция возвратит значение true
.
Копирование файла
Для копирования файла используется функция copy()
. Она принимает имя копируемого файла, и имя
копии файла. И если копирование прошло успешно, возвращает значение true
:
<?
if (copy("hello.txt", "hello_copy.txt")) {
echo "Копия файла создана";
} else {
echo "Ошибка копирования файла"
};
Удаление файла
Для удаления файла применяется функция unlink
, которая принимает имя файла и возвращает
значение true
при успешном удалении файла:
<?
if (unlink("hello_copy.txt")) {
echo "Файл удален";
} else {
echo "Ошибка при удалении файла"
};
Создание каталога
Для создания каталога используется функция mkdir()
:
if (rmdir("newdir")) {
echo "Каталог удален";
} else {
echo "Ошибка при удалении каталога";
};
В данном случае mkdir
создает новый каталог newdir
в текущем каталоге. Если создание
пройдет успешно, то функция
возвращает значение true
, иначе - false
Для создания новой папки в корневом каталоге можно использовать выражение mkdir("/newdir")
.
Удаление каталога
Для удаления каталога применяется функция rmdir()
. Ее использование аналогично mkdir():
if(rmdir("newdir")) {
echo "Каталог удален";
} else {
echo "Ошибка при удалении каталога";
};
Операции с каталогами
Для получения абсолютного пути к текущему каталогу используется функция getcwd()
, которая
возвращает путь в виде строки:
$path = getcwd();
echo $path; // C:\localhost
Функция opendir()
открывает определенный каталог для считывания из него информации о файлах и
каталогах. При успешном открытии каталога функция возвращает дескриптор открытого каталога. После окончания работы с
каталогом его надо закрыть функцией closedir()
.
Для считывания имени отдельного файла в открытом каталоге применяется функция readdir()
.
Теперь объединим эти функции и выведем на страницу все файлы и подкаталоги из текущего каталога:
<?
$dir = getcwd(); // получаем текущий каталог
if (is_dir($dir)) { // является ли путь каталогом
if ($dh = opendir($dir)) { // открываем каталог, считываем по одному файл, пока не дойдем до конца
while (($file = readdir($dh)) !== false) {
// пропускаем символы .. и .
if($file=='.' || $file=='..') {
continue;
}
// если каталог или файл
if(is_dir($file)) {
echo "каталог: $file <br>";
} else {
echo "файл: $file <br>";
}
}
closedir($dh); // закрываем каталог
}
}