使用PHP依次重命名目录中的所有图像文件

以下功能会将目录中的所有图像文件重命名为顺序的。参数是文件所在目录的路径,以及将用于通过PHPusort()函数对文件数组进行排序的函数的名称。

function sequentialImages($path, $sort=false) {

 $i = 1;

 $files = glob($path."/{*.gif,*.jpg,*.jpeg,*.png}",GLOB_BRACE|GLOB_NOSORT);

 

 if ( $sort !== false ) {

  usort($files, $sort);

 }

 

 $count = count($files);

 foreach ( $files as $file ) {

  $newname = str_pad($i, strlen($count)+1, '0', STR_PAD_LEFT);

  $ext = substr(strrchr($file, '.'), 1);

  $newname = $path.'/'.$newname.'.'.$ext;

  if ( $file != $newname ) {

   rename($file, $newname);  

  }

  $i++;

 }

}

可以在第二个参数中使用以下函数,以按文件的最后修改时间对文件进行排序。

function sort_by_mtime($file1, $file2) {

 $time1 = filemtime($file1);

 $time2 = filemtime($file2);

 if ( $time1 == $time2 ) {

  return 0;

 }

 return ($time1 < $time2) ? 1 : -1;

}

将这两个函数放在一起,我们可以sequentialImages()像这样调用该函数。

sequentialImages('files','sort_by_mtime');

此功能拍摄以下图像集:

file1.gif

file2.gif

wibble.gif

wobble.gif

02.gif

并将它们重命名为以下内容:

01.gif

02.gif

03.gif

04.gif

05.gif

 

以上是 使用PHP依次重命名目录中的所有图像文件 的全部内容, 来源链接: utcz.com/z/327658.html

回到顶部