Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-按两位数顺序重命名图片_Php - Fatal编程技术网

PHP-按两位数顺序重命名图片

PHP-按两位数顺序重命名图片,php,Php,我使用以下PHP代码按顺序重命名图片: function sequentialImages($path) { $i = 1; $files = glob($path."/{*.gif,*.jpg,*.jpeg,*.png}",GLOB_BRACE|GLOB_NOSORT); $count = count($files); foreach ( $files as $file ) { $newname = str_pad($i, strlen($count)+1, '0', STR_P

我使用以下PHP代码按顺序重命名图片:

function sequentialImages($path) {
 $i = 1;
 $files = glob($path."/{*.gif,*.jpg,*.jpeg,*.png}",GLOB_BRACE|GLOB_NOSORT);
  $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.'/pictures'.$newname.'.'.$ext;
  if ( $file != $newname ) {
   rename($file, $newname);  
  }
  $i++;
 }
}
我想改名

01.jpg to picture01.jpg
02.jpg to picture02.jpg
03.jpg to picture03.jpg
04.jpg to picture04.jpg
.....
10.jpg to picture10.jpg
11.jpg to picture11.jpg
我得到的结果是

pictures001.jpg
pictures002.jpg
pictures003.jpg
pictures004.jpg
....
pictures010.jpg
pictures011.jpg
我希望,如果图像序列小于9,那么它前面将有一个“0”。如果是10或更多,就不会有额外的零

我试着加上

for ($i=1; $i<=21; $i++)  {
    if($i<=9) {
        //code
    }
    else {
        //code
    }
}

for($i=1;$i如果您想使用
str_pad
并且
您的文件数不超过99个,那么您应该对要填充的长度进行硬编码

$newname = str_pad($i, 2, '0', STR_PAD_LEFT);
当然,正如Loz Cherone正确提到的,更好的方法是使用
sprintf

sprintf("%02d", $i)

使用
sprintf(“%02d”,$i)
而不是stru-pad。更多信息如果你有超过99个文件怎么办?@Kryten@LozCherone我知道你的解决方案会奏效(我就是这么做的),我只是想知道他为什么把自己限制在哦,对了,我想它是指向我的;p