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 />";
}
}
浙公网安备 33010602011771号