Salutations,
J'ai un problème d'échappement de caractères. Il se situe à ce niveau:
Mes utilisateurs ont la bonne idée de mettre des caractères interdits dans leurs noms de fichiers, genre des apostrophes (et bien entendu des ô ou des é, les 'ô' sont vraiment une plaie à traiter, ca provoque bizarrement bien plus d'erreurs que les E accents).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $sql = "select fichier_travail from travaux_$contrat where reference_tech='$li'"; $ex = query($sql); $file = utf8_decode($ex[0]); $file_folder = "documents/$contrat/$file"; if(file_exists($file_folder)) $zip->addFile($file_folder,utf8_encode($file));
Voilà comment fonctionne le bout de code au dessus:
Je récup des noms de fichiers de ma db, je les décode, je les ajoute à l'archive en mettant un nom encodé). Déjà sans cette manip, impossible de constituer l'archive.
Pour une raison que j'ignore, je n'arrive pas à échapper les apostrophes des noms de fichiers issus de ma db. addslashes a décidé de ne pas m'aider.
Les fichiers en questions sont alors ignorés par mon file_exists qui renvoie false puisqu'il ne les trouve pas.
str_replace ne donne pas plus de résultats.
Une idée pour échapper ces caractères ?
Partager