如何让2W张图片按序号排列到200个文件中?
图片名称是有序号.但不一定是连序的图片.图片的名称s00001.gif~s20000.gif(不连续有断号的)
由1个字母与5个数字组合而成
想让他们按序号排到相应的文件夹里。。例子~
s00000文件里存s00000.gif~s00099.gif s00100文件里存s00100.gif~s00199.gif
图片名称是有序号.但不一定是连序的图片.图片的名称s00001.gif~s20000.gif(不连续有断号的)
由1个字母与5个数字组合而成
想让他们按序号排到相应的文件夹里。。例子~
s00000文件里存s00000.gif~s00099.gif s00100文件里存s00100.gif~s00199.gif
$dirname = '';
for($i=0;$i<=20000):
if(substr($i,-1)==0){
mkdir($i);
$dirname = 's'.$i.'/';
}
$fname = 's'.$i.'gif';
file_exists($fname ) && rename($fname,'s'.$i.$fname);
endfor;
$dirname = '';
for($i=0;$i<=20000):
$j = sprinf('%05d',$i);
if(substr($i,-1)==0){
$dirname = 's'.$j.'/';
mkdir($dirname);
}
$fname = 's'.$j.'gif';
file_exists($fname ) && rename($fname,'s'.$j.$fname);
endfor;
$newdir = "newgif/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if(preg_match('/^(s\d{2})\d{3}.gif$/',$file,$matchs)){
if(!is_dir($newdir.$matchs[1].'000'))
mkdir($newdir.$matchs[1].'000',0777);
rename($dir.$file,$newdir.$matchs[1].'000/'.$file);
}
}
closedir($dh);
}
}
看错了,这儿应该是
if(preg_match('/^(s\d{3})\d{2}.gif$/',$file,$matchs)){