/////////////遍历文件夹和子文件夹中所有文件名,输出文件名////////////////////////////////////////////////////////////////////////////////////
<?php
function my_dir($dir) {
$files = array();
if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
while(($file = readdir($handle)) != = false) {
if($file != ".." && $file != ".") { //排除根目录;
if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
$files[$file] = my_dir($dir."/".$file);
} else { //不然就将文件的名字存入数组;
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
echo "<pre>";
print_r(my_dir("."));
echo "</pre>";
/////////////遍历文件夹和子文件夹中所有文件名,输出所在路径+文件名////////////////////////////////////////////////////////////////////////////////////
<?php
function my_dir($dir) {
$filess = array();
$files = array();
$numsk=0; //计算总数的
if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
while(($file = readdir($handle)) !=false) {
if($file != ".." && $file != ".") { //排除根目录;
if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
$files[$file] = my_dir($dir."/".$file);
////////////////////////////////////////将路径写入数组中,方便操作文件和保存///////////////////////////////////////////////////////////////////////
$num = count($files[$file]);
for( $nums= 0;$nums <$num;$nums++)
{
$filess[$numsk] = $files[$file][$nums];
$numsk = $numsk +1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else { //不然就将文件的名字存入数组;
$files[] = $dir."/".$file;
///////////////////////////////////////////////将路径写入数组中,方便操作文件和保存/////////////////////////////////////////////////////////////////
$numfil = count($files);
for($numsa=0;$numsa <$numfil;$numsa++)
{
$filess[$numsa+$numsk] = $files[$numsa];
$numsk = $numsk +1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
}
closedir($handle);
return $filess;
}
}
echo "<pre>";
//print_r(my_dir("."));
echo "</pre>";
$files = my_dir('./TS');
$files = array_filter($files);//删除数组中空的元素
var_dump($files);
//array_filter()函数的功能是利用回调函数来对数组进行过滤,如果没有回调函数,那么默认就是删除数组中值为false的项目。
例如:
$FileArray=array(0=>'1',1=>'',2=>'',3=>'go');
var_dump(array_file($FileArray))
输出结果为:
array(size=2)
0 => string '1' (length=1)
3 => string 'go' (length=2)
这样就引申出来一个新问题,如果我想对array_filter()处理过的新数组的键名序列化成0,1,2,3这样的怎么办呢?
这在数组比较中是很有用的,这里有两个函数可以选择array_values(),sort().
array_values()返回数组中所有的值,并给其建立数字索引。(注意,用这个之后key就是数字索引了)
sort()对数组进行排序。当函数结束时数组单元将被从最低到最高重新安排。成功返回true (注意: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 )*sort函数返回值是布尔类型。
这里我选择了array_values()函数来处理:
var_dump(array_values(array_filter($FileArray)));
输出结果为:
array(size=2)
0 => string '1' (length=1)
1=> string 'go' (length=2)
PHP遍历一个文件夹下所有文件和子文件夹中的所有文件,输出文件名称、清除数组中的空值,并重新排列数组键值
猜你喜欢
转载自blog.csdn.net/tenggeer0789/article/details/89399073
今日推荐
周排行