Ayant seulement 2-3 sites php à mon actif, je bute sur un problème qui, je pense, n’est pas très complexe…
J’ai une page qui permet de saisir des entrées (article de presse) sur ma DB, et qui upload des fichiers sur le serveur.
Je renomme ces fichiers de la manière suivante : date_titre.extension
J’arrive à remplacer les espaces par des “_” mais je bloque sur les accents et autres caractères spéciaux.
Voici ce que j’ai essayé de faire (et qui ne fonctionne pas !) :
Merci pour ta réponse, mais j’ai recherché, et ca semble étre plus ou moins la même chose que mon str_replace…
J’ai testé quand même, mais c’est pas plus encourageant : aucun caractère remplacé a part l’espace…
J’encode mes fichiers en ISO et le serveur, lorsque je fais un phpinfo() me dit : HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7
Ca devrait être bon à ce niveau non ?
Rien de tout ça ne marche, j’ai demandé un coup de main à un pote il me prépare une petite fonction qui convertit en hexa ou chépa trop quoi, j’avoue que j’ai pas tout capté de ce qu’il m’a dit… :heink:
Je pense que ca devrait résoudre mon problème qui semble vraiment lié à l’encodage…
Bon j’ai partiellement résolu mon problème toute seule : en fait le problème venait du fait que le serveur Web est en UTF-8 et la DB en ISO.
Je suis passée par un utf8_encode puis à partir de là j’ai pu enlever les accents de ma chaîne.
J’ai encore un soucis au niveau du ’ (quote).
Par exemple : le titre “c’est un test” va devenir comme nom de fichier sur le serveur => “c\_est_un_test”
(sachant que ce titre est également un lien hypertexte pour aller DL le fichier correspondant sur le serveur)
Avec Firefox je n’ai aucun soucis par contre avec IE, le lien est “c”.
Du coup la page est non trouvée…
Si quelqu’un pouvait aider parce que malgré mes recherches google, je n’arrive pas à bien cerner d’où vient le problème (serveur ou code ou ??).
Donc sans pour autant me donner une réponse parfaite, si on pouvait m’aider a comprendre… :neutre:
C’est à cause du slash lu sous IE (car chez MS, le séparateur dans les chemins du FS locale c’est \, et ils se sont dit que foutre ça avec le protocole web ça perdrait pas les utilisateurs…)
Tu as essayé un coup de rawurlencode histoire que le \ soit transformé en un truc genre %35 ?