Bonjour,
Tu t'exposes à des bugs erratiques. Les conseils de Ryle et de Jojolapine sont judicieux et tout programmeur de dirait la même chose.
Remarques par exemple que Photoshop remplace les espaces par - dans l'exportation de photos pour le web etc.
Tu pourrais faire par exemple
$nom_fichier = strtr($nom_fichier_original,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$nom_fichier = preg_replace('/([^.a-z0-9_-]+)/i', '-', $nom_fichier);
et les noms de fichiers seront renommés (ou pas) tout en étant très reconnaissables.
S'ils sont renommés ($nom_fichier != $nom_fichier_original) tu peux très bien avertir l'utilisateur par un message: "le fichier $nom_fichier_original a été renommé $nom_fichier.
L'utilisateur ne t'en voudra pas car en haut de page ou dans le mode d'emploi tu auras pris soin d'indiquer que les nom de fichiers ne doivent pas comporter d'espaces ou de caractères spéciaux etc. Ainsi le renommage sera perçu comme une optimisation (aussi pro que Photoshop

) et ton code sera béton.