jking54
2015-07-11 13:37
<?php
//打开指定目录
/**
* 遍历目录函数,只读取目录中的最外层的内容
* @param string $path
* @return array
*/
function readDirectory($path){
$handle=opendir($path); //打开指定目录
while($item=readdir($handle)!==false){
//.和..2个特殊目录,.表示当前目录,..表示上级目录
if(($item!=".") && ($item!="..")){
if(is_file($path."/".$item)){
$arr['file'][]=$item;
}
if(is_dir($path."/".$item)){
$arr['dir'][]=$item;
}
else {echo "empty";}
}
}
closedir($handle);
return $arr;
}
$path="file";
print_r(readDirectory($path));
因为括号的问题 你存储到 $arr里的 数据全是 boolean 类型的数据 导致报错了
在函数开头定义个$arr=[];就算file目录下无文件都可以返回个空数组,不会报错.
你代码写错了while (($pathname = readdir($handle)) !== false)
想问你一下,$arr['file'][]=$item;这里面的$arr数组的定义在哪里呢?
<?php
//打开指定目录
/**
* 遍历目录函数,只读取目录中的最外层的内容
* @param string $path
* @return array
*/
function readDirectory($path){
$handle=opendir($path); //打开指定目录
while($item=readdir($handle)!==false){
//.和..2个特殊目录,.表示当前目录,..表示上级目录
if(($item!=".") && ($item!="..")){
if(is_file($path."/".$item)){
$arr['file'][]=$item;
}
if(is_dir($path."/".$item)){
$arr['dir'][]=$item;
}
else {echo "empty";}
}
}
closedir($handle);
return $arr;
}
$path="file";
print_r(readDirectory($path));
你把代码贴出来给我们看看撒!以后这样的问题,先把代码贴出来再问呢。
WEB在线文件管理器
36238 学习 · 346 问题
相似问题