Usando php para renombrar todos los archivos en la carpeta

Nuevo programador php aquí. He estado tratando de cambiar el nombre de todos los archivos en una carpeta al reemplazar la extensión.

El código que estoy usando es deLa respuesta a una pregunta similar en SO.

if ($handle = opendir('/public_html/testfolder/')) {
while (false !== ($fileName = readdir($handle))) {
    $newName = str_replace(".php",".html",$fileName);
    rename($fileName, $newName);
}
closedir($handle);

}

No obtengo errores al ejecutar el código, pero no se realizan cambios en los nombres de archivo.

¿Alguna idea de por qué esto no funciona? Mi configuración de permiso debería permitirlo.

Gracias por adelantado.

EDITAR: me sale una página en blanco al verificar el valor de retorno de rename (), ahora estoy probando algo con glob () que podría ser una mejor opción que opendir ...?

EDITAR 2: Con el fragmento de código 2 a continuación, puedo imprimir el contenido de $ newfiles. Por lo tanto, la matriz existe, pero el fragmento de código str_replace + rename () no cambia el nombre del archivo.

$files = glob('testfolder/*');


foreach($files as $newfiles) 
    {

    //This code doesn't work:

            $change = str_replace('php','html',$newfiles);
    rename($newfiles,$change);

           // But printing $newfiles works fine
           print_r($newfiles);
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta