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 :

Fonction preg_replace qui remplace les e accentués en 2 e


Sujet :

Langage PHP

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Points : 410
    Points
    410
    Par défaut Fonction preg_replace qui remplace les e accentués en 2 e
    Bonjour, je ne comprends pas pourquoi ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('é', '@[éèêëÊË]@i', 'e');
    me renvoie ceci : "ee" au lieu de "e"...

    il me double les e accent (éè), et les a accent, il en fait des "ea" au lieu de "a".

    Comportement très étrange. J'ai vérifié l'encodage, tout est en utf8, ça ne devrait pas poser de problème...

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Encore heureux que tu obtiennes quelque chose. Le premier paramètre de preg_replace (comme de toutes les fonctions commençant par preg_) c'est la pattern, pas la chaîne d'origine. (doc).
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Points : 410
    Points
    410
    Par défaut
    Oui pardon, l'ordre des paramètres n'était pas le bon dans le message, mais dans le code bien entendu c'était le cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('@[éèêëÊË]@i', 'e', 'é')
    renvoie "ee".

    j'ai pallié le problème par un str_replace(), mais cela ne m'explique pas le souci de preg_replace, je pense que l'encodage y est pour quelque chose (je suis passé de ISO-8859-15 à UTF-8)

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as le modificateur "u" pour l'UTF8 :
    http://php.net/manual/fr/reference.p....modifiers.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Fonction remplacer les caractères accentués
    Par ginger4957 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/11/2018, 23h04
  2. [Turbo Pascal] Fonction qui remplace les caractères entrés par des étoiles (*)
    Par Dr.Mimo dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2012, 21h51
  3. Réponses: 3
    Dernier message: 04/01/2009, 21h21
  4. Remplacer les caractères accentués dans une chaine
    Par shaun_the_sheep dans le forum Général Java
    Réponses: 5
    Dernier message: 07/05/2008, 10h41
  5. Fonction à utiliser pour remplacer les accents et autres caractères
    Par Christophe Charron dans le forum Langage
    Réponses: 2
    Dernier message: 05/08/2007, 12h50

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