PHP: 将目录中的所有文件递归重命名为小写
PHP: rename all files to lower case in a directory recursively
我需要帮助。我想递归地将目录中的所有文件重命名为小写。我有一个代码要测试,但它只在该文件夹内重命名,而不是递归地重命名。我怎样才能递归地做到这一点。
这是我使用的代码
<?php
$directory="/data";
$files = scandir($directory);
foreach($files as $key=>$name){
$oldName = $name;
$newName = strtolower($name);
rename("$directory/$oldName","$directory/$newName");
}
?>
您可以为此使用 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...
}
我需要帮助。我想递归地将目录中的所有文件重命名为小写。我有一个代码要测试,但它只在该文件夹内重命名,而不是递归地重命名。我怎样才能递归地做到这一点。
这是我使用的代码
<?php
$directory="/data";
$files = scandir($directory);
foreach($files as $key=>$name){
$oldName = $name;
$newName = strtolower($name);
rename("$directory/$oldName","$directory/$newName");
}
?>
您可以为此使用 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...
}