PHP将规则命名的文件图片放到指定目录下。

1、遍历符合规则的目标目录;

2、遍历要放的图片命名规则;

3、将合规的图片放到合规的目录;

因PHP COPY函数执行false没有找原因,直接生成了bat脚本

<?php
	/*文件处理批量将指定图片放到指定文件夹下 wx:phpkong*/
    error_reporting(1);
	set_time_limit(0); 
	
	function myscandir($path){
		global $dirarr,$num;
		$mydir=dir($path);
		while($file=$mydir->read()){
		  $p=$path.'/'.$file;
		  if(($file!=".") AND ($file!="..")){
		     //echo $p.'<br>';
		  }
		  if((is_dir($p)) AND ($file!=".") AND ($file!="..")){
			  //此处匹配处理 //VIN长度提取
			  if(strtoupper(substr($file,0,3))=='LRG'){
				  $tempstr = strtoupper(substr($file,0,17));
			  
			  
			  
				  //VIN是否存在校对,如果已存在提示
				  if(isset($dirarr[$tempstr])){
					  echo "已存在!!$num 、目录:<font color=red>$p</font> ||  <font color=red>{$dirarr[$tempstr]}</font> <br /><br />";
					  $num++;
					  if(isset($dirarr[$tempstr.'_new'])){
						  echo "重复两次!!$num 、目录:<font color=red><b>$p</b></font> ||  <font color=red>{$dirarr[$tempstr]}</font> <br /><br />";
					  }else{
						   //含有重复
						  $dirarr[$tempstr.'_new'] = $p;
					  }
				  }else{
				  
					 $dirarr[$tempstr]=$p;
				  }
			  }
			myscandir($p);
		  }
    }  
  }
  
  
  function myreadimgarr($path){
		global $imgarr;
		$mydir=dir($path);
		while($file=$mydir->read()){
		  $p=$path.'/'.$file;
		  if(($file!=".") AND ($file!="..")){
		     //echo $p.'<br>';
		  
		  if((is_dir($p)) AND ($file!=".") AND ($file!="..")){
			   
			   
			myreadimgarr($p);
		  }else{
			if(strtolower(substr($file,-4)) == ".jpg" ||strtolower(substr($file,-5)) == ".jpeg"){
				$newkey = strtoupper(substr($file,0,17));
				if(!isset($imgarr[$newkey])){
					$imgarr[$newkey] = $p;
				}else{
					echo "发现重复 $p 与 {$imgarr[$newkey]}<br /><br />";
				}
			}
		  }
		  }
    }  
  }
  
  //读取目录
  $dirarr = [];
  $num =1;
  myscandir('D:\WWW\rename\aaaaaaa');
  
 // var_dump($dirarr);
  //echo count($dirarr);
  
  
  //读取图片文件
  
  
  
  $imgarr = [];
  
  myreadimgarr('D:\WWW\rename\xxxxxxxxxx');
  
 // var_dump($imgarr);
  
  
  
  echo "#####\r\n";
  foreach($imgarr as $k=>$v){
	  if(isset($dirarr[$k])){
		  //复制文件到目录下
		  
		 // var_dump(copy($imgarr[$k],$dirarr[$k].'/'.basename($imgarr[$k])));
		 // file_put_contents($dirarr[$k].'/'.basename($imgarr[$k]),file_get_contents($imgarr[$k]));
		 // echo "已将{$imgarr[$k]} 复制到 {$dirarr[$k]}目录下。<br/>";
		 
		 echo  "copy \"$imgarr[$k]\" \"$dirarr[$k]\\\"\r\n";
	  }else{
		  //echo "$k<br />";
	  }
  }

 

posted @ 2022-07-18 16:13  岁月不待等闲人  阅读(227)  评论(0)    收藏  举报