答案:楼主的那段代码,其实是手册里面的例子,看看手册 count() 如何解释的:
count
(PHP 3, PHP 4, PHP 5)
count -- 计算数组中的单元数目或对象中的属性个数
说明
int count ( mixed var [, int mode] )
返回 var 中的单元数目,通常是一个 array,任何其它类型都只有一个单元。
对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。
如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。
注意: 可选的 mode 参数自 PHP 4.2.0 起可用。
如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。mode 的默认值是 0。count() 识别不了无限递归。
其他:建议你先把文件夹里读出来的所有文件放入一个数组,然后用print_r看看读出来的都是些什么,这想看后你会明白很多 // 调用show_list 函数,传递一个字符串
show_list("/web/htdocs/www.demo.com/home/");
//下面的函数是迭代遍历/web/htdocs/www.demo.com/home/目录,输出所有文件的文件名
function show_list($path){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read())
if($file!='.'&&$file!='..')
show_list($path.'/'.$file);
$dp->close();
}
echo "$path<br>";
} 取得/web/htdocs/www.demo.com/home/ 目录下的所有文件 不含文件夹 show_list("/web/htdocs/www.demo.com/home/");
function show_list($path){
if(is_dir($path)){//如果目录存在
$dp=dir($path);//打开目录
while($file=$dp->read())//循环读取
if($file!='.'&&$file!='..')//如果遍历的结果中不存在.和..开始执行
show_list($path.'/'.$file);//遍历$path下的$file目录
$dp->close();//关闭目录
}
echo "$path<br>";
}
其实杨Shine的建议很好,调试和理解代码,最简单和直接的方式就是输出。你在每一个执行语句下输出结果,就会明白代码的含义。
这段代码主要功能是“遍历”,遍历某个文件夹下的所有文件夹,输出文件夹信息。 换行符你写错了。。。
echo "<br />";
这样输出就是:
8
2 参数为 COUNT_RECURSIVE(或 1),count()将递归地对数组计数。所以是8。
上一个:诚心求php程序员工作
下一个:PHP程序问题