证书编号:PCTI00122

可以用linux命令行操作的 遍历目录 查找文件的代码

上一篇 / 下一篇  2007-07-11 08:29:13 / 个人分类:代码

#!/usr/bin/php -q
<?php
/*
 wangliang  2007-7-9

 检查目录里图片的大小,不符合要求的写入./MistakePhoto.txt文件
*/

printf("Please provide your inquiries to the dir : ");  //获得命令行下输入的目录路径
$dir = read_input();           //获得路径
printf("Please enter the size inquiries Photo (KB):");   //获得查询图片的大小
$filesize = read_input();          //获得判断图片的大小

if (is_dir($dir)) {           //判断是否是目录
 open_dir($dir);
}else{
 echo "Directory does not exist!";
}

exit;
?>
<?
function read_input(){
 $fp = fopen("/dev/stdin", "r");
 $input = trim(fgets($fp, 1024));
 fclose($fp);
 return $input;
}


function open_dir($dir){
 if (!is_dir($dir)){           //如果不是目录,return
  return;
 }
 if ($dh = opendir($dir)) {         //打开目录
  while (($file = readdir($dh)) !== false) { 
   if ($file != "." && $file != "..") {    //去掉. and .. 目录  
    if(substr($file,-4)==".jpg" || substr($file,-4)==".JPG"){//判断图像类型是否为jpg
     $filename=$dir."/".$file;     //获得图片路径
     open_file($filename);
    }else{  
     $redir=$dir."/".$file;     //重新定义一个dir为原dir+非jpg的文件名
     open_dir($redir);      //再次对目录进行递归,找出大于30k的图片
    }
   }
  }
  closedir($dh);          //关闭目录
 }
 return;
}

function open_file($filename){
$filesize=$GLOBALS['filesize'];
 
 $namesize=filesize($filename);
 if($namesize > $filesize*1024){//判断图片大小
  $fp=fopen("./MistakePhoto.csv","a+");
  fwrite($fp,$filename.",".$namesize."\n");   //在打开的文件里写入
  fclose($fp);      
  print_r ($filename.",".$namesize."\n");   //输出内容
 }
 return;
}
?>


TAG: 代码 linux命令行操作 遍历目录

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 3308
  • 日志数: 17
  • 图片数: 4
  • 建立时间: 2007-05-23
  • 更新时间: 2007-07-24

RSS订阅

Open Toolbar