我想重命名多个图像在一个文件夹与不同的名称每10个图像使用php


I want to rename multiple images in a folder with different name every 10 image using php

我有一个文件包含例如1000个图像,我有100个名字,我需要重命名每10个图像与一个名称从100个名称使用php,我做了以下代码,但似乎它不工作::

代码如下::

<?php
$names = array("mo1","mo2", "mo3","mo4",...);
$directory = '/Users/apple/Desktop/toyor/';
$scanned_directory = array_diff(scandir($directory), array('..', '.'));
$flag = 0;
foreach ($names as $value) {
    for ($i=$flag; $i < count($names); $i++) {
        foreach ($scanned_directory as $file_name) {
            if($flag == 9)
                continue;
            else{
                rename($file_name, $value.generate_random_string());
                $flag++;
            }
        }
    }
}
function generate_random_string($length = 10) {
    $characters = 'abcdefghijklmnopqrstuvwxyz';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString . rand(10, 99);
}
?>

您的代码将只重命名前10个文件。我会这样做。

   $name = array('mo1', 'mo2',... 
   $scanned_directory = array_diff(scandir($directory), array('..', '.'));
   $flag = 0;
   $current_name = 0;
   foreach ($scanned_directory as $file_name) {
        if ($flag == 9) {
            $flag = 0;
            $current_name++;
        }
        rename($file_name, $name[$current_name].generate_random_string());
        $flag++;
    }