Spec-Zone.ru › CodeIgniter 4

Filesystem Helper

Файл Directory Helper содержит функции, которые помогают при работе с каталогами.

  • Загрузка этого помощника
  • Доступные функции

Загрузка этого помощника

Этот помощник загружается с помощью следующего кода:

helper('filesystem');

Доступные функции

Доступны следующие функции:

directory_map($source_dir[, $directory_depth = 0[, $hidden = false]])
Параметры:
  • $source_dir (string) – Путь к исходному каталогу
  • $directory_depth (int) – Глубина каталогов для обхода (0 = полностью рекурсивно, 1 = текущий каталог и т. д.)
  • $hidden (bool) – Включать ли скрытые пути
Возвращает:

Массив файлов

Тип возвращаемого значения:

массив

Примеры:

$map = directory_map('./mydirectory/');

Примечание

Пути почти всегда относительны к вашему главному файлу index.php.

Подкаталоги, содержащиеся в каталоге, также будут отображаться. Если вы хотите контролировать глубину рекурсии, вы можете сделать это, используя второй параметр (целое число). Глубина 1 будет отображать только каталог верхнего уровня:

$map = directory_map('./mydirectory/', 1);

По умолчанию скрытые файлы не будут включаться в возвращаемый массив, а скрытые каталоги будут пропускаться. Чтобы изменить это поведение, вы можете установить третий параметр в true (булево):

$map = directory_map('./mydirectory/', false, true);

Каждое имя папки будет индексом массива, а содержащиеся в нем файлы будут индексироваться числовым значением. Вот пример типичного массива:

Array (
    [libraries] => Array
        (
            [0] => benchmark.html
            [1] => config.html
            ["database/"] => Array
                (
                    [0] => query_builder.html
                    [1] => binds.html
                    [2] => configuration.html
                    [3] => connecting.html
                    [4] => examples.html
                    [5] => fields.html
                    [6] => index.html
                    [7] => queries.html
                )
            [2] => email.html
            [3] => file_uploading.html
            [4] => image_lib.html
            [5] => input.html
            [6] => language.html
            [7] => loader.html
            [8] => pagination.html
            [9] => uri.html
        )
)

Если результаты не найдены, это вернёт пустой массив.

directory_mirror($original, $target[, $overwrite = true])
Параметры:
  • $original (string) – Исходный каталог
  • $target (string) – Каталог назначения
  • $overwrite (bool) – Заменять ли отдельные файлы при совпадении имён

Рекурсивно копирует файлы и каталоги исходного каталога в целевой каталог, т. е. «зеркаливает» его содержимое.

Пример:

try {
    directory_mirror($uploadedImages, FCPATH . 'images/');
} catch (Throwable $e) {
    echo 'Failed to export uploads!';
}

Вы можете изменить поведение перезаписи, изменив третий параметр.

write_file($path, $data[, $mode = 'wb'])
Параметры:
  • $path (string) – Путь к файлу
  • $data (string) – Данные для записи в файл
  • $mode (string) – fopen() режим
Возвращает:

true, если запись прошла успешно, false в случае ошибки

Тип возвращаемого значения:

bool

Записывает данные в указанный в пути файл. Если файл не существует, функция создаст его.

Пример:

$data = 'Some file data';

if ( ! write_file('./path/to/file.php', $data)) {
    echo 'Unable to write the file';
} else {
    echo 'File written!';
}

Вы можете установить режим записи, используя третий параметр:

write_file('./path/to/file.php', $data, 'r+');

По умолчанию режим ‘wb’. Обратитесь к руководству по PHP для вариантов режимов.

Примечание

Для записи данных в файл его разрешения должны быть установлены так, чтобы он был доступен для записи. Если файл ещё не существует, то каталог, содержащий его, должен быть доступен для записи.

Примечание

Путь относится к вашему главному файлу index.php сайта, а НЕ к вашим контроллерам или представлениям. CodeIgniter использует фронт-контроллер, поэтому пути всегда относительны к главному файлу index сайта.

Примечание

Функция получает эксклюзивную блокировку файла во время записи в него.

delete_files($path[, $delDir = false[, $htdocs = false[, $hidden = false]]])
Параметры:
  • $path (string) – Путь к каталогу
  • $delDir (bool) – Удалять ли также каталоги
  • $htdocs (bool) – Пропускать ли удаление файлов .htaccess и index
  • $hidden (bool) – Удалять ли также скрытые файлы (файлы, начинающиеся с точки)
Возвращает:

true при успехе, false в случае ошибки

Тип возвращаемого значения:

bool

Удаляет ВСЕ файлы, содержащиеся в указанном пути.

Пример:

delete_files('./path/to/directory/');

Если второй параметр установлен в true, все каталоги, содержащиеся в указанном корневом пути, также будут удалены.

Пример:

delete_files('./path/to/directory/', true);

Примечание

Файлы должны быть доступны для записи или принадлежать системе для удаления.

get_filenames($source_dir[, $include_path = false])
Параметры:
  • $source_dir (string) – Путь к каталогу
  • $include_path (bool|null) – Включать ли путь в имя файла; false для без пути, null для пути относительно $source_dir, true для полного пути
  • $hidden (bool) – Включать ли скрытые файлы (файлы, начинающиеся с точки)
Возвращает:

Массив имён файлов

Тип возвращаемого значения:

массив

Принимает путь на сервере в качестве входных данных и возвращает массив, содержащий имена всех файлов, содержащихся в нём. Путь к файлу может быть добавлен к именам файлов, установив второй параметр в «relative» для относительных путей или любое другое ненулевое значение для полного пути к файлу.

Пример:

$controllers = get_filenames(APPPATH.'controllers/');
get_dir_file_info($source_dir, $top_level_only)
Параметры:
  • $source_dir (string) – Путь к каталогу
  • $top_level_only (bool) – Искать только в указанном каталоге (исключая подкаталоги)
Возвращает:

Массив, содержащий информацию о содержимом каталога

Тип возвращаемого значения:

массив

Считывает указанный каталог и создаёт массив, содержащий имена файлов, размер файлов, даты и разрешения. Подкаталоги, содержащиеся в указанном пути, считываются только принудительно, если второй параметр установлен в false, так как это может быть ресурсоёмкой операцией.

Пример:

$models_info = get_dir_file_info(APPPATH.'models/');
get_file_info($file[, $returned_values = ['name', 'server_path', 'size', 'date']])
Параметры:
  • $file (string) – Путь к файлу
  • $returned_values (array|string) – Какой тип информации вернуть, передавая в виде массива или через запятую
Возвращает:

Массив, содержащий информацию об указанном файле, или false при ошибке

Тип возвращаемого значения:

массив

На основе файла и пути возвращает (по желанию) атрибуты имя, путь, размер и изменённую дату файла. Второй параметр позволяет явно указать, какую информацию вы хотите получить.

Допустимые $returned_values варианты: name, size, date, readable, writeable, executable и fileperms.

symbolic_permissions($perms)
Параметры:
  • $perms (int) – Разрешения
Возвращает:

Строка символических разрешений

Тип возвращаемого значения:

строка

Принимает числовые разрешения (такие, как возвращаемые fileperms()) и возвращает стандартную символическую запись разрешений файла.

echo symbolic_permissions(fileperms('./index.php'));  // -rw-r--r--
octal_permissions($perms)
Параметры:
  • $perms (int) – Разрешения
Возвращает:

Строка восьмеричных разрешений

Тип возвращаемого значения:

строка

Принимает числовые разрешения (такие, как возвращаемые fileperms()) и возвращает строку восьмеричной записи разрешений файла с тремя символами.

echo octal_permissions(fileperms('./index.php')); // 644
same_file($file1, $file2)
Параметры:
  • $file1 (string) – Путь к первому файлу
  • $file2 (string) – Путь ко второму файлу
Возвращает:

Являются ли оба файла идентичными (по хэшу MD5)

Тип возвращаемого значения:

boolean

Сравнивает два файла, чтобы определить, являются ли они одинаковыми (на основе их хэша MD5).

echo same_file($newFile, $oldFile) ? 'Same!' : 'Different!';
set_realpath($path[, $check_existence = false])
Параметры:
  • $path (string) – Путь
  • $check_existence (bool) – Требуется ли проверка существования пути
Возвращает:

Абсолютный путь

Тип возвращаемого значения:

string

Эта функция возвращает серверный путь без символических ссылок или относительных структур каталогов. Дополнительный второй аргумент вызовет ошибку, если путь не может быть разрешен.

Примеры:

$file = '/etc/php5/apache2/php.ini';
echo set_realpath($file); // Prints '/etc/php5/apache2/php.ini'

$non_existent_file = '/path/to/non-exist-file.txt';
echo set_realpath($non_existent_file, true);    // Shows an error, as the path cannot be resolved
echo set_realpath($non_existent_file, false);   // Prints '/path/to/non-exist-file.txt'

$directory = '/etc/php5';
echo set_realpath($directory);  // Prints '/etc/php5/'

$non_existent_directory = '/path/to/nowhere';
echo set_realpath($non_existent_directory, true);   // Shows an error, as the path cannot be resolved
echo set_realpath($non_existent_directory, false);  // Prints '/path/to/nowhere'

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/helpers/filesystem_helper.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API