我有一个文件包含例如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++;
}