Главная / Веб-программирование / Веб-программирование Работа с каталогами в PHP

Веб-программирование Работа с каталогами в PHP

Можно создать новую папку с помощью PHP функции mkdir() с указанным путем и названием, как показано в приведенном ниже примере. Затем мы познакомимся с функцией PHP scandir().

Пример:

<?php
// Путь каталога
$dir = "testdir";

// Проверяем существование каталога
if(!file_exists($dir)){
// Попытка создания каталога
if(mkdir($dir)){
echo "Directory created successfully.";
} else{
echo "ERROR: Directory could not be created.";
}
} else{
echo "ERROR: Directory already exists.";
}
?>

Чтобы функция mkdir() работала корректно, родительский каталог должен существовать по указанному пути. Например, если вы путь testdir/subdir, то папка testdir должен существовать. В противном случае 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 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");
?>

Перевод статьи “PHP Parsing Directories” был подготовлен дружной командой проекта Сайтостроение от А до Я.

О нас seoexpert

продвижение сайта,seo оптимизация,поисковое продвижение,раскрутка сайтов,поисковая оптимизация,продвижение сайта в гугл,seo раскрутка,продвижение сайтов в яндексе,продвижение сайта в google,продвижение сайтов в топ 10,Оптимизация и продвижение сайтов,услуги продвижения сайта,заказать продвижение,продвижение сайтов в топ,сео раскрутка сайта

Смотрите также

Определение типа данных double в C, C++ и C#

Double – 64-разрядная переменная с плавающей запятой Тип double — это основной тип данных, который ...