如何在下面重命名此文件?
/Categories
| /Celebrities
| | /Alyssa Milano
| | | 1.jpg
| | | 2.jpg
| | | 3.jpg
| | | 4.jpg
| | | 5.jpg
| | /Britney Spears
| | | 1.jpg
| | | 2.jpg
| | | 3.jpg
| | | 4.jpg
| | | 5.jpg
| /Singers
| | /Rihanna
| | | 1.jpg
| | | 2.jpg
| | | 3.jpg
| | | 4.jpg
| | | 5.jpg
| | /Katy Perry
| | | 1.jpg
| | | 2.jpg
| | | 3.jpg
| | | 4.jpg
| | | 5.jpg
我想重命名 1.jpg , 2.jpg , 3.jpg , 4.jpg , 5.jpg 到
Alyssa Milano - 1.jpg,Alyssa Milano - 2.jpg,Alyssa Milano - 3.jpg
Britney Spears - 1.jpg,Britney Spears - 2.jpg,Britney Spears - 3.jpg
蕾哈娜 - 1.jpg,蕾哈娜 - 2.jpg,蕾哈娜 - 3.jpg
Katy Perry - 1.jpg,Katy Perry - 2.jpg,Katy Perry - 3.jpg
您好@GusDB,
我将代码更改为以下内容,但没有任何反应
<?php
/**
* Created by Gus de Boer
* 28-10-2014
* Stackoverflow
*/
function scanParentDir(){
$categories = scandir('categories ');
foreach($categories as $cat){
if(file_exists('categories /'.$cat) && $cat != '.' && $cat != '..'){
changesNamesToSubParentDir($cat);
}
}
}
function changesNamesToSubParentDir($cat){
$albums = scandir('categories /'.$cat);
foreach($albums as $album){
if(file_exists('categories /'.$cat.'/'.$album) && $album != '.' && $album != '..'){
changesNamesToParentDir($album);
}
}
}
function changesNamesToParentDir($album){
$files = scandir('categories /'.$cat.'/'.$album);
foreach($files as $file){
if(file_exists('categories /'.$cat.'/'.$album.'/'.$file) && $file != '.' && $file != '..'){
$filename = pathinfo('categories /'.$cat.'/'.$album.'/'.$file);
rename('categories /'.$cat.'/'.$album.'/'.$file, 'categories /'.$cat.'/'.$album.'/'.$album.$filename['basename']);
}
}
}
?>
非常感谢。
答案 0 :(得分:0)
您可以使用scandir()(http://php.net/manual/en/function.scandir.php)获取“Celebrities”目录中每个目录的数组。
scandir('path-to-directory');
这将生成一个包含所有目录的数组。在此之后,您可以遍历它,并为所有图像再次执行scandir()。
您可以使用rename()(http://nl3.php.net/manual/en/function.rename.php)
重命名文件rename('path-to-file<oldname>', 'path-to-file<newname>');
您应该先尝试编码并稍后提问。还提供您已经尝试过的代码示例。
我希望这对你有用!
修改强>
这些功能可以帮到你。这只是基本的重命名,你应该添加更多的检查和内容。
<?php
/**
* Created by Gus de Boer
* 28-10-2014
* Stackoverflow
*/
function scanParentDir(){
$directories = scandir('Categories/Celebrities');
foreach($directories as $dir){
if(file_exists('Categories/Celebrities/'.$dir) && $dir != '.' && $dir != '..'){
changesNamesToParentDir($dir);
}
}
}
function changesNamesToParentDir($dir){
$files = scandir('Categories/Celebrities/'.$dir);
foreach($files as $file){
if(file_exists('Categories/Celebrities/'.$dir.'/'.$file) && $file != '.' && $file != '..'){
$filename = pathinfo('Categories/Celebrities/'.$dir.'/'.$file);
rename('Categories/Celebrities/'.$dir.'/'.$file, 'Categories/Celebrities/'.$dir.'/'.$dir.$filename['basename']);
}
}
}
?>