2015-01-23 4 views
0

Я пытаюсь написать скрипт, который делает следующее, но я не уверен, с чего начать:Случайные переименовывать все файлы

Получает все файлы в директории - как *.JPG and *.jpg переименовывает вышеуказанные файлы, начиная с 00 - с помощью RANDOM() и сохраняет их как .JPG Отображает сообщение об успешном завершении.

В настоящее время они «RANDOM_FILENAME.JPG или .jpg» Я хотел ranNum.JPG в конце концов случайное изображение со случайным числом

Я знаю, что я должен получить все файлы в папке и, возможно, взрываются их, но я просто смущен лучший 5.* способ сделать это

+0

где «случайный» здесь подходит? –

+0

все еще не получите его. 'start for 00' означает« последовательность »... дайте пример. 00,56,99,23? Почему два нуля? Должно ли всегда быть две цифры? –

+1

Если вы используете 'random()' что произойдет, если вы получите повторное имя? Почему это происходит случайным образом, а не последовательно? – Barmar

ответ

2

Попробуйте что-то вроде этого:

// getting the list of files 
$files = glob('my/dir/*.[jJ][pP][gG]'); 

foreach($files as $file) 
{ 
    // here: trying to find a random name. 
    // repeat, if such a file already exists 
    do { 
     $number = mt_rand(0, 999999); 
     $new_name = dirname($file) .'/'. sprintf("%06d", $number) .'.JPG'; 
    } 
    while(is_file($new_name)); 

    // now, all we need is love! 
    rename ($file, $new_name); 
} 

echo "Successfully renamed ".count($files)." files!"; 

Это будет переименовывать их в случайном порядке, как 528989.JPG, 112344.JPG, 003424.JPG и т.д.

Смежные вопросы