- Statut : non résolu
- Ce sujet contient 9 réponses, 3 participants et a été mis à jour pour la dernière fois par Guy, le il y a 12 années et 9 mois.
-
AuteurMessages
-
10 mars 2012 à 16 h 04 min #506884
Bonjour à tous,
J’ai fait quelques tests sur plusieurs versions de WordPress et PHP (WordPress 3.1 avec PHP4 ou WordPress 3.3 avec PHP 5.3) et je remarque que les accents dans les noms de fichiers uploadés ne sont pas gérés…
Quand j’upload un fichier avec le nom « j’ai marché à l’ombre.jpg » par exemple, cela se convertie en « jai-marché-à -lombre.jpg » sur le serveur et le lien ne fonctionne pas…
Est-ce moi qui ai mal configuré quelque chose ou est-ce normal ?
En effet je suis étonné que WordPress n’ait pas déjà implémenté une fonction permettant de convertir (ou tout simplement d’effacer) les caractères spéciaux dans les noms de fichiers qu’on upload ??
J’ai « développé » (c’est un grand mot pour le peu de code qu’il y a à écrire) un plugin permettant de convertir les lettres accentués en lettres non accentuès lors de l’upload d’un fichier mais j’ai vraiment l’impression que c’est moi qui ai mal configuré quelque chose..
Pouvez vous m’aider ?
Merci !
PS : J’ai testé rapidement l’offre officielle de blog WordPress et les caractères spéciaux ne sont pas gérés non plus et sont converties en chiffres (j’imagine que c’est une question d’harmonisation vu le nombre de languages à gérer mais quand même…)Par exemple « j’ai marché à l’ombre.jpg » devient quelque chose comme « jai-march-052-589-lombre.jpg »
Pourtant WordPress est réputé pour sa bonne optimisation pour le référencement… Or un fichier appelé « jai-marche-a-lombre.jpg » se référencera beaucoup mieux que « jai-march-052-589-lombre.jpg »
10 mars 2012 à 16 h 59 min #821856essaye cette fonction : sanitize_file_name
http://codex.wordpress.org/Function_Reference/sanitize_file_name
10 mars 2012 à 17 h 13 min #821857Je me permets de signaler qu’il faut éviter à tout prix ce genre de caractères dans les noms de fichiers.
Ce n’est pas un problème de wordpress, c’est un problème de serveur. Et éventuellement, dans le cadre de wordpress, de type de caractère de ton blog.Tu ne trouveras JAMAIS sur le web des urls reprenant directement la forme « j’ai marché à l’ombre »
Donc le mieux est de préparer ton fichier en l’appelant j’ai-marche-a-l-ombre
ou mieux marche-ombre …10 mars 2012 à 17 h 32 min #821858ca c’est sur, c’est à proscrire 🙂
sinon, j’ai testé la fonction que j’avais donné, c’est pas terrible, essaye plutot avec la fonction sanitize_title
10 mars 2012 à 18 h 16 min #821859Bonjour,
Merci pour vos réponses,
Le plugin que j’ai écris ajoute un filtre à la fonction « sanitize_file_name » pour que ça fonctionne mieux mais si « sanitize_title » fait ça en mieux déjà je vais l’utiliser dans mon plugin
Merci !
@Lumière de Lune En fait je trouve ça aberrant de devoir encore faire attention aujourd’hui aux noms de fichiers qu’on envoie sur le net alors que plein de fonctions PHP permettent de régler ce problèmeEDIT: La fonction « sanitize_title » ne convient pas non plus dans les cas extrêmes comme un fichier appelé :
‘@éèêëÊË’,aaaàâäÂÄîïÎÏûùüÛÜôöÔÖç’.jpg
Bon ok c’est extrême mais je préfère tout prévoir…
Au final mon plugin d’origine fonctionne bien, je pense que je vais le mettre sur le site de WordPress pour avoir des retours
Merci !
10 mars 2012 à 18 h 40 min #821860il suffit de regarder un site russe, japonais, chinois ou tout simplement allemand et de vouloir taper le nom d’un fichier écrit avec les caractère spéciaux de la langue pour s’apercevoir que ce conseil n’est pas dénué de sens 🙂
10 mars 2012 à 18 h 44 min #821861Oui j’aimerais aussi que tout le monde connaisse les standards du web mais malheureusement par expérience en entreprise (je suis responsable informatique) je vois que 99% du temps les utilisateurs ne veulent tout simplement pas se prendre la tête.. (ce que je comprends un peu, la technologie doit être à notre service et pas l’inverse)
Bref je préfère trouver une solution à ce problème plutôt que de m’habituer à ce problème (surtout sur mon CMS préféré WordPress !)
10 mars 2012 à 18 h 46 min #821862ben pourquoi ça ne marche pas?
Tu veux qu’une phrase dénuée de sens deviennent signifiante après le traitement? je ne comprends pas bien ton raisonnement et pourquoi ça ne convient pas.
apres traitement cela fera
eeeeeeaaaaaaaaiiiiuuuuuooooc-jpg
ce n’est pas pire que
‘@éèêëÊË’,aaaàâäÂÄîïÎÏûùüÛÜôöÔÖç’.jpg
10 mars 2012 à 19 h 34 min #821855C’était juste un exemple 😋
Concrètement j’ai parfois des utilisateurs qui mettent des images avec des accents ou ça peut arriver des caractères plus rares comme « Ê » ou autres
Par exemple si un fichier s’appelle « Être ou ne pas être.jpg » je veux qu’il devienne « etre-ou-ne-pas-etre.jpg »
Donc avec mon plugin ça fonctionne c’est parfait 🙂 Apparemment la fonction « sanitize_title » ne prend pas en compte les caractères les plus étranges donc je préfère être sure de tout prendre en compte surtout quand le risque est de finir avec des fichiers inutilisables / non effaçable sur le serveur
10 mars 2012 à 23 h 07 min #821863C’est pas grave, sanitize_title transforme « Être ou ne pas être » en « etre-ou-ne-pas-etre », mais bon… si ça ne convient pas et que tu préfères avoir « etre-ou-ne-pas-etre », je comprends 🙂
Je pense que c’est la fonction qui est utilisé pour les slugs et titre des pages et articles dans les permalinks, comme le dit la doc : Despite the name of this function, the returned value is intended to be suitable for use in a URL, not as a human-readable title.
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.