CodeIgniter4 文件系统辅助函数
目录辅助函数文件包含的函数协助目录运行。
加载文件系统辅助函数
文件系统辅助函数使用下面的代码加载:
helper('filesystem');
通用函数
接下来的函数是通用的:
directory_map
($source_dir[, $directory_depth = 0[, $hidden = FALSE]])
参数: | $source_dir (string) – 资源目录路径 |
---|---|
$directory_depth (int) – 遍历目录量度 (0 = 完全递归, 1 = 最近目录, 等等) | |
$hidden (bool) – 是否包含隐藏目录 | |
返回: | 文件数组 |
返回类型: | array |
例子:
$map = directory_map('./mydirectory/');
注解
路径几乎常常与你的主要 index.php 文件有关系。
子文件夹包含的目录还会被映射。如果你希望控制递归量度,你会使用秒参数(整型)。1 的量度将仅仅映射根层目录:
$map = directory_map('./mydirectory/', 1);
默认情况下,在返回数组里将不会被包含隐藏文件。推翻这个运转状态,你也许要设置第三个参数为真(boolean):
$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
)
如果没有找到结果,将会返回空数组。
write_file
($path, $data[, $mode = 'wb'])
参数: | $path (string) – File 路径 |
---|---|
$data (string) – 数据写入 file | |
$mode (string) – fopen() 模式 |
|
返回: | 如果写入成功为 TRUE , 万一错误是 FALSE |
返回类型: | bool |
File 写入数据要详细指明路径,如果确凿没有 File 文件函数将会创建它。
事例:
$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 用户指导 <http://php.net/manual/en/function.fopen.php>`_ .
注解
这个函数向文件里写入数据要按顺序,它的权限必须被设置成可写的。如果文件已经不存在, 那么目录下的文件必须是可写的。
路径关联你的主站的 index.php 文件,不是你的 controller 或者 view 文件。 CodeIgniter 用前端 controller 因此路径常常关联主站的 index.
当写入文件时函数捕获了文件上独占的锁定。
delete_files
($path[, $del_dir = FALSE[, $htdocs = FALSE]])
参数: | $path (string) – 目录路径 |
---|---|
$del_dir (bool) – 是否也删除目录 | |
$htdocs (bool) – 是否跳过删除 .htaccess 和 index page 文件 | |
返回: | 万一为FALSE,TRUE 为真 |
返回类型: | 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) – 作为文件名的部分是否包含路径 | |
返回: | 文件名数组 |
返回类型: | array |
函数里取服务器路径输入并返回包含所有文件名的数组。设置第二参数为 TRUE 文件路径能很随意的被添加到文件名里。
事例:
$controllers = get_filenames(APPPATH.'controllers/');
get_dir_file_info
($source_dir, $top_level_only)
参数: | $source_dir (string) – 目录路径 |
---|---|
$top_level_only (bool) – 是否仅仅查看特殊目录 (不包含子目录) | |
返回: | 数组涵盖的信息在备用目录的内容中 |
返回类型: | array |
阅读指定的目录并建立包含文件名,文件大小,日期和权限的数组。 如果传送第二个参数被阻止成 FALSE 包含指定目录的子文件夹一定是只读的,如同这是个强调操作。
事例:
$models_info = get_dir_file_info(APPPATH.'models/');
get_file_info
($file[, $returned_values = array('name', 'server_path', 'size', 'date')])
参数: | $file (string) – File 路径 |
---|---|
$returned_values (array) – 任何返回的信息类型 | |
返回: | 在指定文件上的数组包含的信息或失效的 FALSE |
返回类型: | array |
约定的文件和路径,文件返回(随意地) the name, path, size and date modified 属性信息。 第二参数允许你明确地声明任何你想返回的信息。
有效的 $returned_values
选项是: name, size, date, readable, writeable, executable 和 fileperms.
symbolic_permissions
($perms)
参数: | $perms (int) – 权限 |
---|---|
返回: | 象征权限的 string |
返回类型: | string |
抓取数值权限(就像是被 fileperms()
返回的)并且返回文件权限的标准符号记号。
echo symbolic_permissions(fileperms('./index.php')); // -rw-r--r--
octal_permissions
($perms)
参数: | $perms (int) – 权限 |
---|---|
返回: | 八进制权限的 string |
返回类型: | string |
抓取数值权限(就像是被 fileperms()
返回的)并且返回文件权限的一个由三个字母组成的八进制记号。
echo octal_permissions(fileperms('./index.php')); // 644
set_realpath
($path[, $check_existance = FALSE])
参数: | $path (string) – 路径 |
---|---|
$check_existance (bool) – 如果路径确实存在是否要去检查 | |
返回: | 绝对路径 |
返回类型: | string |
函数会返回不带符号链接的服务器路径或者有关联的目录结构。 如果路径不能决定选项的次一级争议将触发一个错误。
事例:
$file = '/etc/php5/apache2/php.ini';
echo set_realpath($file); // 输出 '/etc/php5/apache2/php.ini'
$non_existent_file = '/path/to/non-exist-file.txt';
echo set_realpath($non_existent_file, TRUE); // 显示错误,如同路径不能决定
echo set_realpath($non_existent_file, FALSE); // 输出 '/path/to/non-exist-file.txt'
$directory = '/etc/php5';
echo set_realpath($directory); // 输出 '/etc/php5/'
$non_existent_directory = '/path/to/nowhere';
echo set_realpath($non_existent_directory, TRUE); // 显示错误,如同路径不能决定
echo set_realpath($non_existent_directory, FALSE); // 输出 '/path/to/nowhere'