Bonjour à tous,
Pour nettoyer des noms de fichiers avant un upload, j'utilise une fonction de nettoyage standard :
Elle fonctionne très bien lors d'un upload classique et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function nettoie($str, $charset='utf-8') { $str = htmlentities($str, ENT_NOQUOTES, $charset); $str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str); $str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); $str = preg_replace('#\&[^;]+\;#', '', $str); return $str; }
chaîne_dégueu.zip devient bien chaine_degueu.zip
Idem si je teste à l'affichage.
Mais si je veux utiliser la fonction rename pour un fichier qui est déjà sur le serveur, ça ne fonctionne plus :
Quelqu'un sait pourquoi ? J'ai pourtant ajouté un encodage UTF-8...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $avant = "chaîne_dégueu.zip"; $apres = nettoie($avant); rename($avant, $apres);







Répondre avec citation
Partager