该脚本的目的是更改电子商务网站目录中的图像列表的名称。因此,当脚本是rand时,用户将输入他们想要一组或要添加前缀的文件列表的单词或短语。该脚本将迭代每个文件,更改前缀并附加从零开始的下一个可用数字。
我想在页面上向用户显示/呈现已更改的文件。现在,当脚本运行时,它会显示目录中的当前文件,然后在目录中列出已更改的文件及其名称。
如何在脚本完成处理新名称后才能显示文件列表?
为什么脚本没有在文件名中附加正确的递增数字?它按以下顺序重命名文件: abc0.jpg abc1.jpg abc10.jpg abc11.jpg abc12.jpg abc13.jpg
<?php
$display_file_list;
//Allow user to put choose name
if (isset($_POST['file_prefix'])){
$the_user_prefix = $_POST['file_prefix'];
//open the current directory change this to modify where you are looking
$dir = opendir('.');
$i=0;
//Loop though all the files in the directory
while(false !==($file = readdir($dir)))
{
//This is the way we would like the page to function
//if the extention is .jpg
if(strtolower(pathinfo($file, PATHINFO_EXTENSION)) =='jpg')
{
//Put the JPG files in an array to display to the user
$display_file_list[]= $file;
//Do the rename based on the current iteration
$newName = $the_user_prefix.$i . '.jpg';
rename($file, $newName);
//increase for the next loop
$i++;
}
}
//close the directory handle
closedir($dir);
}else{
echo "No file prefix provided";
}
?>
<html>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input type="text" name="file_prefix"><br>
<input type="submit" value="submit" name="submitMe">
</form>
</body>
</html>
<?php
foreach ($display_file_list as $key => $value) {
echo $value. "<br>";
}
?>
答案 0 :(得分:0)
“如何在脚本完成处理新名称后才能显示文件列表?”
我认为这对你有用;
$path = "path/to/files";
$files = glob("{$path}/*.jpg");
$files_renamed = array();
foreach ($files as $i => $file) {
$name = "{$path}/{$prefix}{$i}.jpg";
if (true === rename($file)) {
$files_renamed[] = $name;
}
}
print_r($files_renamed);