Bonjour,

Mon application php récupère un fichier uploader pour pouvoir le transformer en un fichier PDF accessible par l'intranet (lien sur le fichier PDF sur serveur).

Pour que le nom du fichier puisse s'intégrer dans une url, je veux remplacer tous les lettres avec accents par leur équivalent sans accents.

Voici mon script principal :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
      	       require_once("TraitementChaineURL.php");
  	           echo "\n<BR><BR>Le fichier ".$_FILES['DocFile']['name']." a été uploadé !!";
  	           $PosLastChar = strrpos($_FILES['DocFile']['name'],".");
               $FileExt = substr($_FILES['DocFile']['name'], $PosLastChar);
               $FileNameExtLess = substr($_FILES['DocFile']['name'],0,$PosLastChar);
            	 echo "\n<BR><BR> Le nom du fichier sans extension est ".$FileNameExtLess;
            	 $FileName = clearname($FileNameExtLess);
               echo "\n<BR><BR>Le fichier ".$FileName.$FileExt;
            	 $chemin_destination = "c:\\www\\monsite\\temp\\";
            	 echo "\n<BR><BR>Le chemin de destination est ".$chemin_destination;
            	 $fichier_destination = $chemin_destination.$FileName.$FileExt;
            	 echo "\n<BR><BR>Le fichier de destination est ".$fichier_destination;
               move_uploaded_file($_FILES['DocFile']['tmp_name'], $fichier_destination);
La fonction clearname :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
function clearname($chaine)
{
 
    $accents   = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝþßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýÿÞ";
    $ssaccents = "AAAAAAACEEEEIIIIDNOOOOOOUUUUYBsaaaaaaaceeeeiiiidnoooooouuuyyyb";
    $chainessaccents = strtr($chaine,$accents,$ssaccents);
    return ereg_replace("[[:blank:]]+|[[:space:]]+","_",trim($chainessaccents));
}
Malheureusement ça ne fonctionne pas...
Voici le résultat pour un fichier nommé "Ýþßàáâãäåæ.xls" :

Le fichier Ýþßàáâãäåæ.xls a été uploadé !!

Le nom du fichier sans extension est Ýþßàáâãäåæ

Le fichier Yþsàaaãaåæ.xls

Le chemin de destination est c:\www\monsite\temp\

Le fichier de destination est c:\www\monsite\temp\Yþsàaaãaåæ.xls

Certains accents ont bien été remplacé mais pas tous ( le à par exemple).

Help !

Merci d'avance



PS: Apache/2.0.54 (Win32) PHP/5.0.5

Essai sous Firefox
Editeur PSPad