Перейти к содержимому

dir()

Введение

PHP — это популярный язык серверного скриптинга, используемый для создания динамических веб-страниц. Одной из ключевых функций PHP является функция dir(), которая позволяет управлять директориями и файлами на сервере. В этой статье мы рассмотрим функцию dir() вместе с другими функциями для работы с директориями в PHP и узнаем, как их использовать для управления директориями и файлами.

Понимание функций работы с директориями в PHP

PHP предоставляет несколько встроенных функций для работы с директориями. Эти функции позволяют создавать, открывать, закрывать, читать, записывать и удалять директории и файлы. Некоторые из наиболее распространенных функций для работы с директориями в PHP:

  • opendir() — открывает дескриптор директории
  • readdir() — читает содержимое дескриптора директории
  • closedir() — закрывает дескриптор директории
  • mkdir() — создает новую директорию
  • rmdir() — удаляет директорию
  • scandir() — читает содержимое директории в массив

Использование функции opendir()

Функция opendir() используется для открытия дескриптора директории. Она принимает один параметр — имя директории, которую нужно открыть. После открытия директории вы можете использовать функцию readdir() для чтения её содержимого.

Использование функции readdir()

Функция readdir() используется для чтения содержимого директории. Она принимает один параметр — дескриптор директории, возвращаемый функцией opendir(). Эта функция возвращает имя следующего файла или директории в текущей директории. Вы можете использовать цикл while для перебора всех файлов и директорий.

Пример использования opendir() и readdir() в PHP

php
<?php

$dir = "/path/to/directory";
if (is_dir($dir)){
  if ($dh = opendir($dir)){
    while (($file = readdir($dh)) !== false){
      echo "filename:" . $file . "<br>";
    }
    closedir($dh);
  }
}

Использование функции mkdir()

Функция mkdir() используется для создания новой директории. Она принимает два параметра: первый — имя создаваемой директории, второй — необязательный параметр, задающий права доступа для новой директории.

Использование функции mkdir() в PHP

php
mkdir("/path/to/my/new/directory", 0755, true);

Второй параметр задает права доступа (например, 0755), а третий необязательный параметр включает рекурсивное создание.

Использование функции rmdir()

Функция rmdir() используется для удаления директории. Она принимает один параметр — имя удаляемой директории.

Использование функции rmdir() в PHP

php
rmdir("/path/to/my/new/directory");

Примечание: rmdir() удаляет только пустые директории. Непустые директории необходимо очистить перед удалением.

Использование функции scandir()

Функция scandir() используется для чтения содержимого директории в массив. Она принимает один параметр — имя читаемой директории. Эта функция возвращает массив имен файлов и директорий в указанной директории.

Использование функции scandir() в PHP

php
<?php

$dir = "/path/to/directory";
$files = scandir($dir);
print_r($files);

Использование функции dir()

⚠️ Устаревшая функция: Функция dir() была помечена как устаревшая в PHP 7.4 и удалена в PHP 8.0. Вместо неё используйте DirectoryIterator или scandir(). Приведенный ниже пример предназначен только для поддержки устаревшего кода.

Функция dir() возвращает объект Directory, который предоставляет объектно-ориентированный способ чтения содержимого директории. В отличие от scandir(), возвращающего простой массив, dir() возвращает объект с методами read(), rewind() и close(). Обратите внимание, что dir() не является псевдонимом для scandir(); они выполняют разные задачи и возвращают данные разных типов.

Использование функции dir() в PHP

php
<?php
$dir = dir("/path/to/directory");
while (($file = $dir->read()) !== false) {
    echo "filename: " . $file . "<br>";
}
$dir->close();

Заключение

Подводя итог, PHP предоставляет несколько встроенных функций для работы с директориями, таких как opendir(), readdir(), mkdir() и rmdir(), которые позволяют управлять директориями и файлами на сервере. Понимая эти функции и используя их в своих PHP-скриптах, вы сможете легко управлять директориями и файлами. Мы надеемся, что эта статья помогла вам получить всестороннее представление о функциях PHP для работы с директориями и научиться применять их в своих проектах.

Практика

Какие методы предоставляет класс PHP 'dir' для работы с директориями?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.