文件系统辅助函数

目录辅助函数文件包含的函数协助目录运行。

加载文件系统辅助函数

文件系统辅助函数使用下面的代码加载:

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

将数据写入指定路径中的文件。如果文件不存在,这个函数将创建文件。

例如:

$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, executablefileperms.

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'