Skip to content

Latest commit

 

History

History
executable file
·
228 lines (152 loc) · 7.01 KB

filesystem_helper.rst

File metadata and controls

executable file
·
228 lines (152 loc) · 7.01 KB

文件系统辅助函数

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

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

helper('filesystem');

接下来的函数是通用的:

.. php:function:: directory_map($source_dir[, $directory_depth = 0[, $hidden = FALSE]])

        :param  string  $source_dir: 资源目录路径
        :param  int     $directory_depth: 遍历目录量度 (0 = 完全递归, 1 = 最近目录, 等等)
        :param  bool    $hidden: 是否包含隐藏目录
        :returns:       文件数组
        :rtype: array

        例子::

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

        .. note:: 路径几乎常常与你的主要 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
                                )

        如果没有找到结果,将会返回空数组。

.. php:function:: write_file($path, $data[, $mode = 'wb'])

        :param  string  $path: File 路径
        :param  string  $data: 数据写入 file
        :param  string  $mode: ``fopen()`` 模式
        :returns:       如果写入成功为 TRUE , 万一错误是 FALSE
        :rtype: 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>`_ .

        .. note:: 这个函数向文件里写入数据要按顺序,它的权限必须被设置成可写的。如果文件已经不存在,
                  那么目录下的文件必须是可写的。

        .. note:: 路径关联你的主站的 index.php 文件,不是你的 controller 或者 view 文件。
                  CodeIgniter 用前端 controller 因此路径常常关联主站的 index.

        .. note:: 当写入文件时函数捕获了文件上独占的锁定。

.. php:function:: delete_files($path[, $del_dir = FALSE[, $htdocs = FALSE]])

        :param  string  $path: 目录路径
        :param  bool    $del_dir: 是否也删除目录
        :param  bool    $htdocs: 是否跳过删除 .htaccess 和 index page 文件
        :returns:       万一为FALSE,TRUE 为真
        :rtype: bool

        删除所有包含在备用路径里的文件。

        事例::

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

        如果第二个参数设置为 TRUE,包含备用根路径的任何目录将也会被删除。

        事例::

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

        .. note:: 文件必须是可写的而已经归属至系统的文件原则上已被删除。

.. php:function:: get_filenames($source_dir[, $include_path = FALSE])

        :param  string  $source_dir: 目录路径
        :param  bool    $include_path: 作为文件名的部分是否包含路径
        :returns:       文件名数组
        :rtype: array

        函数里取服务器路径输入并返回包含所有文件名的数组。设置第二参数为 TRUE 文件路径能很随意的被添加到文件名里。

        事例::

                $controllers = get_filenames(APPPATH.'controllers/');

.. php:function:: get_dir_file_info($source_dir, $top_level_only)

        :param  string  $source_dir: 目录路径
        :param  bool    $top_level_only: 是否仅仅查看特殊目录 (不包含子目录)
        :returns:       数组涵盖的信息在备用目录的内容中
        :rtype: array

        阅读指定的目录并建立包含文件名,文件大小,日期和权限的数组。
        如果传送第二个参数被阻止成 FALSE 包含指定目录的子文件夹一定是只读的,如同这是个强调操作。


        事例::

                $models_info = get_dir_file_info(APPPATH.'models/');

.. php:function:: get_file_info($file[, $returned_values = array('name', 'server_path', 'size', 'date')])

        :param  string  $file: File 路径
        :param  array   $returned_values: 任何返回的信息类型
        :returns:       在指定文件上的数组包含的信息或失效的 FALSE
        :rtype: array

        约定的文件和路径,文件返回(随意地) the *name*, *path*, *size* and *date modified* 属性信息。
        第二参数允许你明确地声明任何你想返回的信息。


        有效的 ``$returned_values`` 选项是: `name`, `size`, `date`, `readable`, `writeable`,
        `executable` 和 `fileperms`.

.. php:function:: symbolic_permissions($perms)

        :param  int     $perms: 权限
        :returns:       象征权限的 string
        :rtype: string

        抓取数值权限(就像是被 ``fileperms()`` 返回的)并且返回文件权限的标准符号记号。

        ::

                echo symbolic_permissions(fileperms('./index.php'));  // -rw-r--r--

.. php:function:: octal_permissions($perms)

        :param  int     $perms: 权限
        :returns:       八进制权限的 string
        :rtype: string

        抓取数值权限(就像是被 ``fileperms()`` 返回的)并且返回文件权限的一个由三个字母组成的八进制记号。

        ::

                echo octal_permissions(fileperms('./index.php')); // 644

.. php:function:: set_realpath($path[, $check_existance = FALSE])

        :param  string  $path: 路径
        :param  bool    $check_existance: 如果路径确实存在是否要去检查
        :returns:       绝对路径
        :rtype: 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'