строчные буквы — PHP: рекурсивно переименовывать все файлы в нижний регистр в каталоге

Мне нужна помощь. Я хочу рекурсивно переименовать все файлы в нижний регистр в каталоге. У меня есть код для тестирования, но он переименовывается только в этой папке не рекурсивно. Как я могу сделать это, чтобы сделать это рекурсивно.

Это код, который я использую

<?php
$directory="/data";
$files = scandir($directory);
foreach($files as $key=>$name){
$oldName = $name;
$newName = strtolower($name);
rename("$directory/$oldName","$directory/$newName");
}
?>

4

Решение

Вы можете использовать SPL RecursiveDirectoryIterator для этого.

<?php
$path = realpath('your/path/here');

$di = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS),
RecursiveIteratorIterator::LEAVES_ONLY
);

foreach($di as $name => $fio) {
$newname = $fio->getPath() . DIRECTORY_SEPARATOR . strtolower( $fio->getFilename() );
echo $newname, "\r\n";
//rename($name, $newname); - first check the output, then remove the comment...
}
12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]