2016-09-22 1 views
-1

У меня есть файл, содержащий 1000 изображений, и у меня есть 100 имен, мне нужно переименовать каждые 10 изображений с одним именем из 100 имен с помощью PHP, я сделал следующий код, но он, кажется, не работает ::Я хочу переименовать несколько изображений в папке с различным именем каждые 10 изображений, используя 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); 
} 
?> 
+0

У меня возникли проблемы с пониманием идеи, стоящей за частью '$ i apokryfos

ответ

0

код вы должны переименовать только первые 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++; 
    } 
Смежные вопросы