Работа с каталогами в PHP
Работа с каталогами может стать важным инструментом для организации файлов и улучшения эффективности работы. В статье подробно объясняется, как правильно работать с каталогами в различных операционных системах и приложениях.
Вы узнаете, как создавать, перемещать и структурировать каталоги для оптимизации поиска и хранения данных. Упрощайте свой рабочий процесс и повышайте продуктивность с помощью эффективных методов организации.
Копирование и перемещение файлов
Можно скопировать и переместить файл с помощью функции PHP copy(). В качестве параметров она принимает исходный и конечный путь. В том случае, если файл уже существует, он будет переписан.
Пример:
<?php
// Исходный путь файла
$file = "example.txt";
//
$newfile = "backup/example.txt";
// Проверка существование файла
if (file_exists($file) ) {
// Попытка копирования файла
if (copy($file, $newfile) ) {
echo "File copied successfully.";
} else {
echo "ERROR: File could not be copied.";
}
} else {
echo "ERROR: File does not exist.";
}
?>Как получить в PHP список файлов в папке
Можно использовать PHP scandir(), чтобы получить список всех файлов, которые содержит папка.
Пример:
<?php
// Определение функции для вывода файлов в каталог
function outputFiles($path){
// Проверка на существование каталога
if(file_exists($path) && is_dir($path)){
// Проверка файлов в каталоге
$result = scandir($path);
// Отфильтровать данный (.) и предыдущего уровня (..) каталоги
$files = array_diff($result, array('.', '..'));
if(count($files) > 0){
// Обход возвращенного массива
foreach($files as $file){
if(is_file("$path/$file")){
// Отображение имени файла
echo $file . "<br>";
} else if(is_dir("$path/$file")){
// Рекурсивно вызываем функцию, если каталоги найдены
outputFiles("$path/$file");
}
}
} else{
echo "ERROR: No files found in the directory.";
}
} else {
echo "ERROR: The directory does not exist.";
}
}
// Название имени файла
outputFiles("mydir");
?>Список файлов определенного типа
При работе с папками и файлами может потребоваться найти файлы определенных типов. Например, только файлы .text или .png. Для этого предназначена функция glob(). которая осуществляет поиск файлов по заданному шаблону.
В приведенном ниже примере PHP найдет в папке все файлы с расширением .text. Данный пример не будет искать подкаталоги, как и PHP scandir().
Пример:
<?php
/* Поиск каталога и цикл по возвращенному массиву, содержащему обозначенные файлы */
foreach(glob("documents/*.txt") as $file){
echo basename($file) . " (size: " . filesize($file) . " bytes)" . "<br>";
}
?>Функция glob() также используется для нахождения всех файлов в каталоге или подкаталоге.
Пример:
<?php
// Определение функции для вывода файлов из каталога
function outputFiles($path){
// Проверка существования каталога
if(file_exists($path) && is_dir($path)){
// Поиск файлов в каталоге
$files = glob($path ."/*");
if(count($files) > 0){
// Циклический обход возвращённого массива
foreach($files as $file){
if(is_file("$file")){
// Отображаем только имя файла
echo basename($file) . "<br>";
} else if(is_dir("$file")){
// Рекурсивно вызываем функцию, если каталоги найдены
outputFiles("$file");
}
}
} else{
echo "ERROR: No such file found in the directory.";
}
} else {
echo "ERROR: The directory does not exist.";
}
}
// Вызвать функцию
outputFiles("mydir");
?>
Комментарии