用命令行操作遍历目录,查找文件的PHP代码

#!/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;
}
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值