文件辅助函数
文件辅助函数文件包含若干对文件进行操作的函数。
加载
使用以下代码:
$this->load->helper('file');
加载后可用以下函数:
read_file('path')
返回路径为path的文件内容。例:
$string = read_file('./path/to/file.php');
可以是相对或者绝对的服务器的路径。如果函数执行失败则返回 FALSE(boolean类型)。
提示: 这里的路径是相对于该站点的index.php所在的路径,而不是当前所在的控制器或视图文件的路径。这是因为CodeIgniter使用的前端控制器(front controller),所以所有的路径永远都是相对于index.php所在路径。
如果你的服务器打开了 open_basedir 限制,你可能无法通过上面的方法访问一个文件。
write_file('path', $data)
写进数据到path所指向文件。如果文件不存在则创建之。例:
$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 user guide。
注意:要使用此函数写进数据,当前用户对此文件应该是“可写”的,如果该文件不存在则该用户应该对包含该文件的目录有写权限。(即*nux系统下的666,777等)。
提示: 这里的路径是相对于该站点的index.php所在的路径,而不是当前所在的控制器或视图文件的路径。这是因为CodeIgniter使用的前端控制器(front controller),所以所有的路径永远都是相对于index.php所在路径。
delete_files('path')
删除所有包含于path下的文件。例:
delete_files('./path/to/directory/');
如果第二个参数设为 true, 则所有在path下的文件夹也会被删除掉。例:
delete_files('./path/to/directory/', TRUE);
提示: 要被删除的文件必须是当前系统用户所有或者是当前用户对之具有写权限。
get_filenames('path/to/directory/')
获取path/to/directory目录下所有文件名组成的数组。如果需要文件名中有其完整路径则可以设置可选的第二个参数为TRUE。
get_dir_file_info('path/to/directory/', $top_level_only = TRUE)
获取path/to/directory/目录下的所有文件的文件名,文件大小,日期,文件权限等,并将这些内容保存到返回的数组当中。Sub-folders contained within the specified path are only read if forced by sending the second parameter, $top_level_only to FALSE, as this can be an intensive operation.
get_file_info('path/to/file', $file_information)
通过给定的路径和文件名,获取到文件path/to/file的文件名,文件大小,文件更改日期等。第二个参数允许你说明需要返回的信息,这个参数的选项包括'name', 'server_path', 'size', 'date', 'readable', 'writable', 'executable', 'fileperms'。如果文件不存在则返回FALSE。
注意: 参数 "writable" 是使用PHP内部的 is_writable() 函数来得到文件读写权限信息的,而这个函数在IIS服务器上存在众所周知的问题。为此,可以考虑使用PHP内部的另一个函数来替换,这个函数就是fileperms()。
get_mime_by_extension('file')
将文件后缀所代表的文件类型按照config/mimes.php里所指明的对应类型进行解释。如果不能决定文件类型,或者不能打开mime配置文件则返回 FALSE。
$file = "somefile.png";
echo $file . ' is has a mime type of ' . get_mime_by_extension($file);
注意: 这并不是一个准确判断文件类型的方式,而仅仅是一种方便的判别方式。不应当在涉及安全问题时使用这种方式。
symbolic_permissions($perms)
将数字式的权限表示方式(如fileperms()函数所返回值)转换成采用标准符号的标示方式,例如:"33279"转换成"-rwxrwxrwx")。
echo symbolic_permissions(fileperms('./index.php'));
// -rw-r--r--
octal_permissions($perms)
将数字式的权限表示方式(如fileperms()函数所返回值)转换成采用三字符的八进制的标示方式,例如:"33279"转换成"777")。
echo octal_permissions(fileperms('./index.php'));
// 644