Search code examples
phpcssfile-renamebatch-rename

How to change name of every file in folder


I'm trying to change every file name in a folder, for e.g if file name is style.css than i want to rename it as style_[md5 value of style].css = style_a1b01e734b573fca08eb1a65e6df9a38.css

here is what I've tried

if ($handle = opendir("D:/web/htdocs/extra/css/")) {
    while (false !== ($fileName = readdir($handle))) {
        $path_parts = pathinfo($fileName);
        $newName = md5($path_parts['filename']);
        rename($fileName, $newName);
    }
    closedir($handle);
}

Where am i wrong?

errors are

Access is denied. (code: 5)
The system cannot find the file specified. (code: 2)

Solution

  • // DS to print  \  the split between folder
    define('DS',DIRECTORY_SEPARATOR);
    // APP_PATH to get application path on the the server
    define('APP_PATH',__DIR__.DS);
    
    $oldname = APP_PATH.'css'.DS.'style.css';
    /*
    when you echo $oldname ,you will get the complete path of file
    */
    // check the file is exists or No
    if (file_exists($oldname)) {
            $newName = md5($oldname);
            /*add the extension of file that you will rename it */
            rename($oldname, ($newName.'.css'));
    }