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