我写的这个目的是统计文件夹大小
<?
$dir="d:/program files/wamp/www/1/";
fsize($dir);
function fsize($dir){
$headle=opendir($dir);
while($file=readdir($headle)){
if($file!="."&&$file!=".."){
if(is_dir($dir.$file)){
$file_file[]=$file;
}
else{$v+=filesize($file);
}
}
}
foreach($file_file as $value){
fsize($dir.$value);
}
echo $v;
}
?>可执行后提示:
Warning: Invalid argument supplied for foreach()
$file_file是个数组啊?
为什么呢?
<?
$dir="d:/program files/wamp/www/1/";
fsize($dir);
function fsize($dir){
$headle=opendir($dir);
while($file=readdir($headle)){
if($file!="."&&$file!=".."){
if(is_dir($dir.$file)){
$file_file[]=$file;
}
else{$v+=filesize($file);
}
}
}
foreach($file_file as $value){
fsize($dir.$value);
}
echo $v;
}
?>可执行后提示:
Warning: Invalid argument supplied for foreach()
$file_file是个数组啊?
为什么呢?
if(is_dir($dir.$file))
{
$file_file[]=$file;
}
else
{
$v+=filesize($file);
}如果is_dir($dir.$file)不成立,那就运行了else语句,那哪里还有$file_file数组???呵呵。
输出结果是:
Warning: Invalid argument supplied for foreach() in D:\Program Files\wamp\www\1.php on line 15Warning: Invalid argument supplied for foreach() in D:\Program Files\wamp\www\1.php on line 15
Array ( [0] => 新建文件夹 [1] => 新建文件夹 (2) ) 188498
函数的漏洞太多了
if(is_dir($dir.$file)){
$file_file[]=$file;
}
数组把“文件夹”收集起来,再送回函数。