- <?php $count=0; $bmp=0; $png=0; function show($p){ global $count; global $bmp,$png; $i=scandir($p);//在浏览器上输出文件夹里面的内容 echo '<pre>'; foreach($i as $v){ if($v=='.'|| $v=='..'){//去掉浏览器上显示的本级目录及上级目录 continue; } $pp=$p.'/'.$v; if(is_dir($pp)){//判断是不是一个文件,如果是则调用首尾show()输出内容 show($pp); } $ext=strtolower(substr($v,strrpos($v,'.')+1));//截取扩展名不带.strtolower 不区分大小 if($ext=='jpg'){ echo $v.'<br>'; $count++; }else if($ext=='bmp'){ echo $v.'<br>'; $bmp++; }else if($ext=='png'){ echo $v.'<br>'; $png++; } } } $path='f:/a'; show($path); echo 'jpg图片共有'.$count.'个<br>'; echo 'bmp图片共有'.$bmp.'个<br>'; echo 'bmp图片共有'.$png.'个';
is_dir('f:/a')判断是不是个文件夹
if(is_dir('f:/a')){
echo '是个文件夹';
}else{
echo '不是个文件夹'; //结果是个文件夹
}
scandir('f:/php');列出制定路径中的文件和目录
$i=scandir('f:/php');
//echo $i;//不能直接echo输出因为sandir()返回的是一个数组
echo '<pre>';
print_r($i);
substr($i,strrpos($i,'.')+1)读取扩展名substr()返回字符串的子串截取字符串,strrpos计算指定字符串在目标字符串中最后一次出现的位置,从右边开始第一次出现的位置
$i='aaa.jpg';
echo substr($i,strrpos($i,'.')+1);
strtolower($i);将字符串转换成小写
$i='AAA';
echo strtolower($i);
去掉. 及..的方法
方法一:
$i=scandir('f:/php');
echo '<pre>';
foreach($i as $v){
if($v=='.'||$v=='..'){
continue;
}
echo $v.'<br>';
}
方法二:
array_diff($a,$b)计算数组的差集如果b里面有和a重复的不要打印显示
$a=[10,20,30];
$b=[10,50,60];
echo '<pre>';
print_r(array_diff($a,$b));//计算数组的差集如果b里面有和a重复的不要打印显示
array_diff($v,array('.','..'));
$a=scandir('f:/php');
$i=array_diff($a,array('.','..'));
foreach($i as $v){
echo $v.'<br>';
}
如果有中文目录可以指定一下字符集
header('content-type:text/html;charset=gbk');