Как переименовать этот файл ниже?
/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 в
Алисса Милано — 1.jpg, Алисса Милано — 2.jpg, Алисса Милано — 3.jpg
Бритни Спирс — 1.jpg, Бритни Спирс — 2.jpg, Бритни Спирс — 3.jpg
Рианна — 1.jpg, Рианна — 2.jpg, Рианна — 3.jpg
Кэти Перри — 1.jpg, Кэти Перри — 2.jpg, Кэти Перри — 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']);
}
}
}
?>
Большое спасибо.
Вы можете использовать scandir () (http://php.net/manual/en/function.scandir.php), чтобы получить массив каждого каталога в вашем каталоге «Знаменитости».
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']);
}
}
}
?>
Других решений пока нет …