Renomeando múltiplos arquivos em PHP e Shell Script

Veja o código que é uma mesclagem de PHP e Shell

<?php
/* damos um valor incial ao i para renomear os arquivos numerados no loop */
$i = 1;
	/* Iniciamos o loop foreach para listar os arquivos utilizando a função glob() */
	foreach (glob("*.*") as $arquivo) {
	/* utilizamos a função substr() para não mexermos na extensão do arquivo */
	$ext = substr($arquivo, -4);
		/* criamos uma condição para caso que as extensões forem maior que 3 letras e um ponto, ex.: jpeg, java... */
		/* Ou seja na renomeação se for maior que 3 letras o arquivo.jpeg, ficaria arquivojpeg, o (.) seria substituido, 
		logo, se a função strchr não encontrar o (.) no arquivo é que ele foi substituído, então quer dizer que o extensão
		 provavelmente foi maior que 3 letras, há outras formas de fazer isso, essa eu achei melhor */
		if(!strchr($ext, ".")){
			$ext = substr($arquivo, -5);
		}
		/* incluir aqui os arquivos que vc não deseja renomear, pus esse 3 como exemplo */
		if($arquivo == "index.php" || $arquivo == "backup.php" || $arquivo == "renomear.php"){
			//nao faça nada
		}else{
			/* utilizamos a função rename para renomear em numeração */
			rename($arquivo, $i++.$ext);			
		}
		
	}
	/* rodando os comandos acima, após ler esta parte, informa que os arquivos foram renomeados */
	echo "Renomeados!\n";
?>