簡體   English   中英

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...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM