判断一个文件里面有多少各种格式的图片

Posted on 2015-05-22 23:20  小蕊同学  阅读(180)  评论(0编辑  收藏  举报
  1. <?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')判断是不是个文件夹
  1. if(is_dir('f:/a')){
  2. echo '是个文件夹';
  3. }else{
  4. echo '不是个文件夹'; //结果是个文件夹
  5. }
scandir('f:/php');列出制定路径中的文件和目录
  1. $i=scandir('f:/php');
  2. //echo $i;//不能直接echo输出因为sandir()返回的是一个数组
  3. echo '<pre>';
  4. print_r($i);

substr($i,strrpos($i,'.')+1)读取扩展名substr()返回字符串的子串截取字符串,strrpos计算指定字符串在目标字符串中最后一次出现的位置,从右边开始第一次出现的位置
  1. $i='aaa.jpg';
  2. echo substr($i,strrpos($i,'.')+1);

strtolower($i);将字符串转换成小写
  1. $i='AAA';
  2. echo strtolower($i);

去掉. 及..的方法
方法一:
  1. $i=scandir('f:/php');
  2. echo '<pre>';
  3. foreach($i as $v){
  4. if($v=='.'||$v=='..'){
  5. continue;
  6. }
  7. echo $v.'<br>';
  8. }
方法二:
array_diff($a,$b)计算数组的差集如果b里面有和a重复的不要打印显示
  1. $a=[10,20,30];
  2. $b=[10,50,60];
  3. echo '<pre>';
  4. print_r(array_diff($a,$b));//计算数组的差集如果b里面有和a重复的不要打印显示

array_diff($v,array('.','..'));
  1. $a=scandir('f:/php');
  2. $i=array_diff($a,array('.','..'));
  3. foreach($i as $v){
  4. echo $v.'<br>';
  5. }

如果有中文目录可以指定一下字符集
header('content-type:text/html;charset=gbk');









Copyright © 2024 小蕊同学
Powered by .NET 9.0 on Kubernetes