【发布时间】:2012-06-08 18:54:56
【问题描述】:
我基本上很难将动态变量传递给视图。
我的 php 函数如下:
公共函数 scandir_recursive($directory, $filter=FALSE)
{
// 如果路径末尾有斜线,我们在此处将其删除
if(substr($directory,-1) == '/')
{
$directory = substr($directory,0,-1);
}
// 如果路径无效或不是目录...
if(!file_exists($directory) || !is_dir($directory))
{
// ... 我们返回 false 并退出函数
返回错误;
// ... else 如果路径是可读的
}elseif(is_readable($directory))
{
// 初始化目录树变量
$directory_tree = 数组();
// 我们打开目录
$directory_list = opendir($directory);
// 并扫描里面的项目
while (FALSE !== ($file = readdir($directory_list)))
{
// 如果文件指针不是当前目录
//或父目录
if($file != '.' && $file != '..')
{
// 我们建立新的扫描路径
$path = $directory.'/'.$file;
// 如果路径可读
如果(是可读($路径))
{
// 我们按目录分割新路径
$subdirectories = explode('/',$path);
// 如果新路径是目录
if(is_dir($path))
{
// 将目录详细信息添加到文件列表中
$directory_tree[] = 数组(
'路径' => $路径,
'名称' => 结束($子目录),
'种类' => '目录',
// 我们通过调用这个函数来扫描新路径
'内容' => scandir_recursive($path, $filter));
// 如果新路径是文件
}elseif(is_file($path))
{
// 通过取最后一个点之后的所有内容来获取文件扩展名
$extension = end(explode('.',end($subdirectories)));
// 如果没有设置过滤器或过滤器已设置并匹配
if($filter === FALSE || $filter == $extension)
{
// 将文件详细信息添加到文件列表中
$directory_tree[] = 数组(
'路径' => $路径,
'名称' => 结束($子目录),
'扩展' => $扩展,
'大小' => 文件大小($路径),
'种类' => '文件');
}
}
}
}
}
//关闭目录
关闭目录($directory_list);
// 返回文件列表
返回$目录树;
// 如果路径不可读...
}别的{
// ... 我们返回 false
返回错误;
}
}
我需要使这样的函数可操作,因为我可以递归地回显从目录中检索到的数据并将这些数据传递给视图。
【问题讨论】:
标签: php codeigniter