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

PHP & Base de données Discussion :

Remplacer des guillemets


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut Remplacer des guillemets
    Bonjour,

    Je ne trouve pas de solution simple pour résoudre mon problème à savoir

    j'ai un texte qui ressemble à ceci
    le tableau représentant "la Joconde" a été trouvé dans un "grenier"

    et je veux le transformer en ceci en utilisant PHP
    le tableau représentant «la Joconde» a été trouvé dans un «grenier»


    Avez vous une solution

    merci et bonne journée

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    Avec preg_replace() et un groupe de capture:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $str = 'le tableau représentant "la Joconde" a été trouvé dans un "grenier"';
     
    echo preg_replace('~ " ( [^"]* ) " ~x', '«$1»', $str);
    // groupe de capture 1 ^                  ^ référence capture 1

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    Merci pour la réponse, c'est presque ça voici ce que ça donne dans la table

    «le tableau représentant »«la Joconde»« a été trouvé dans un »«grenier»«»

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    Tu as oublié de préciser l'encodage de ta page html: <meta charset="utf-8" /> dans le "head".

  5. #5
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    Désolé oui "utf-8"

  6. #6
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    Par la même occasion tu peux m'expliquer le fonctionnement du groupe de capture

    '~ " ( [^"]* ) " ~x', '«$1»'

  7. #7
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    ~ " ( [^"]* ) " ~x c'est la pattern qui décrit une portion de la chaîne de caractères. Cette portion, si elle est trouvée dans la chaîne sujet sera remplacée par le motif de remplacement «$1».

    Dans la pattern:
    • ~ est le délimiteur de la pattern.
    • [^"] est une classe de caractères excluant le double quote (autrement dit tous les caractères sauf celui là, le ^ au début d'une classe de caractères marque la négation).
    • * est un quantificateur (zéro ou plus), il indique la répétition de ce qui précède (la classe de caractères dans le cas présent).
    • (...) délimite un groupe de capture, c'est à dire une partie de la correspondance qui sera mémorisée. Les groupes de captures sont numérotés à partir de 1 par ordre d'apparition dans la pattern de leur parenthèse ouvrante.
    • x qui est situé au delà du délimiteur est un modificateur qui s'applique à l'ensemble de la pattern. Ce modificateur particulier indique qu'il faut ignorer les espaces (et autres caractères blancs) dans la pattern, et accessoirement que # marque le début d'un commentaire inline).


    Dans le motif de remplacement $1 est un placeholder faisant référence à ce qui se trouve dans le groupe de capture n°1.

  8. #8
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    merci et bonne journée

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

Discussions similaires

  1. [XL-2010] ADODB remplacer doubles guillemets par des simples
    Par informer dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/11/2019, 10h06
  2. Réponses: 5
    Dernier message: 22/08/2019, 14h52
  3. Réponses: 0
    Dernier message: 15/12/2017, 14h37
  4. [RegEx] preg_replace remplacer des guillemets
    Par Invité dans le forum Langage
    Réponses: 19
    Dernier message: 07/09/2011, 16h19
  5. remplacement des guillemets
    Par Hub2010 dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 28/05/2009, 14h56

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