IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Incoherence sortie d'un strtr


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut Incoherence sortie d'un strtr
    Bonjour a tout le monded.

    J'ai un petit soucis avec la sortie d'un strtr.
    Je vourdais en fait enlever les accents sur une string qui est en fait le nom d'un fichier que j'upload sur le serveur.

    Je pensais le faire comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filename = strtr($filename, '@ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','aAAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    Comme sa plantais j'ai mis 2 petits echos pour voir ce que me renvoi la fonction et la je comprends plus du tout.

    Voici le retour des 2 echos:

    name_file avant=1éàè.jpg

    name_file apres=1y�yyy�.jpg


    Si quelqun a une idée merci d'avance.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    C'est à priori un problème d'encodage. Tout doit être dans le même encodage.

    Sinon si ta version de php le supporte tu peux supprimer les accents avec iconv

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string);

  3. #3
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    J'ai essayé avec iconv c'est pas sa encore mais c'est mieux

    sa me donne sa:


    name_file avant=1éàè.jpg

    name_file apres=1'e`a`e.jpg


    Maintenant je n'ai plus qu'a enlever ce qui n'est pas lettres ou chiffres ^^

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Il y aurait bien ça mais le rendus est bizzare.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function filter($in) {
    	$search = array ('@[éèêë]@i','@[àâä]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i');
    	$replace = array ('e','a','i','u','o');
    	return preg_replace($search, $replace, $in);
    }
    le soucis c'est qu'il me remplace les é par eee et les è par ee

    Je comprends pas la

    ça me donne ça en affichage:

    name_file avant=1éàè.jpg

    name_file apres=1eeeaee.jpg

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Toujours un problème d'encodage. A un moment donner tu as quelque chose qui n'est pas dans le même encodage que le reste.

    Si tout est en utf8 , il faut probablement faire un utf8_encode() sur le nom du fichier que tu reçois.

    Bref, il faut vérifier les encodage de toutes les parties concernées par le code.

  6. #6
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    ça commencais a m'enerver lol

    C'est pas beau mais en attendant sa marche.
    Je rendrais sa un peux plus optimisé par la suite mais en attendant j'ai fait comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $filename= str_replace("é","e",$filename);
    $filename= str_replace("è","e",$filename);
    $filename= str_replace("à","a",$filename);
    $filename= str_replace("ç","c",$filename);
    Merci grunk en tout cas pour tes reponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 18/07/2003, 17h16
  2. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23
  3. [LG]Entrées et sorties redirigée
    Par Lady dans le forum Langage
    Réponses: 17
    Dernier message: 10/05/2003, 18h33
  4. Rediriger le plux de sortie
    Par Groove dans le forum C
    Réponses: 5
    Dernier message: 17/04/2003, 17h16
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo