FTP php et pi ba les accent !!

:)
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 18:45

Voili voila tous bonsoir

J'ai un script qui créé un nouveau dossier et un autre script qui fait que l'on peut mettre une image dans ce dossier ou suprimer une image pour la remplacer par une autre, le petit prob c'est que quand il y a des accent ça marche pas :(( voici mon script
//on se connecte
$ftp_server="*****";
$ftp_user_name="****";
$ftp_user_pass="****";

//pop2 c'est le nom de photo a supp
if($pop2==''){echo "";}
else{$file="/www/imgfam/$famille/$pop2"; 

/* Connexion */ 
$conn_id = ftp_connect($ftp_server); 

/* Identification */ 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
$del_result = ftp_delete($conn_id, $file); 
/* Tente de supprimer le fichier $file */ 
if($del_result) { 
echo "Photo modifiée\n"; 
} else { 
echo "Echec de la suppression du fichier $file.\n"; 
} 

/* Fermeture de la connexion */ 
ftp_close($conn_id); 
$prou="imgfam/$famille/";}

$fichier    = $_FILES['fichier']['name'];
$taille     = $_FILES['fichier']['size'];
$tmp        = $_FILES['fichier']['tmp_name'];
$type        = $_FILES['fichier']['type'];
$erreur     = $_FILES['fichier']['error'];

//$repertoire est le répertoire de destination 
$repertoire=$prou; 
$photo = $_FILES['fichier']['name']; 

//on met le fichier dans le répertoire de destination 
move_uploaded_file($_FILES['fichier']['tmp_name'],$repertoire.$photo); 
Merci a tous :)

Mammouth du PHP | 19672 Messages

26 avr. 2005, 20:12

Est-ce que par hasard ton serveur FTP serait sous Linux ??? auquel cas, il est probable que notre petit pingouin n'aime pas les accents, alors, il te faut traiter la saisie pour remplacer tous les caractères spéciaux et renommer les fichier sans accents. Avec des expressions régulières, ça peut très bien se faire, même si ça risque d'être un peu laborieux à écrire ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
pjl
ViPHP | 2119 Messages

26 avr. 2005, 23:07

règle de base : jamais d'accent et d'espace dans un fichier destiné à être mis sur le web.

Administrateur PHPfrance
Administrateur PHPfrance | 1275 Messages

27 avr. 2005, 08:14

Pas d'accents, pas d'espace, mais pas non plus de caractères spéciaux genre apostrophes.

Par exemple avec un truc de ce genre :
// enlever les accents
$chaine = strtr($chaine, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$chaine = preg_replace('/([^.a-z0-1]+)/i', '_', $chaine);