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 :

[Tableaux] remplacer une apostrophe dans une chaine de texte


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut [Tableaux] remplacer une apostrophe dans une chaine de texte
    Bonjour à tous,

    Je voudrais remplcare une apostrophe par un "-" dans une chaine de texte...
    J'ai donc essayé les soluces suivantes, sans succès...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chaine = str_replace("'", "-",$chaine);
    $chaine = str_replace("le car ascii de apostrophe", "-",$chaine);
    $chaine = str_replace("\'", "-",$chaine);
    Ca doit être tout bête, mais...
    PS: je précise que $chaine provient d'une table mysql.
    Merci d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    heuuu t'as cliqué sur résolu mais y'a pas de réponse... c'est résolu ou pas ?

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Non, je me suis gouré !
    est ce que je peux utiliser la fonction strtr ?

    Je l'utilise déjà pour virer les accents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $ch = strtr($ch, "àâäçéèêëîïùüû", "aaaceeeeiiuuu");

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    est-ce que tu stock pas tes ' sous la forme & # 3 9 ; ou encore & a p o s ; un truc dans ce genre là dans ta bdd (genre tu fait ton insert avec un htlmspecialchars) ? vérifi en regardant directement dans ta bdd a l'aide de phpmyadmin ou d'un truc dans le style.

    ps : désolé pour la façon dont je suis obligé d'ecrire le code des apostrophes pour qu'il l'interprete pas

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Non non, dans ma base ce sont des ' pas de prob.
    Le truc délirant, c'est que certaines chaine s'affichent
    "c' est ma chaine"
    et d'autres
    "c'est ma chaine"

    Alors qu'il n'y a aucune différence dans la bdd...
    C'est dingue !

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    et tu es bien sur de ne pas faire d'amalgame entre ' et ` ?

  7. #7
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Non, je ne crois pas, ma base est homogène à ce niveau...pourtant doit y avoir un loup quelque part...
    mais utiliser strtr pour virer d'un coup tous les cas de figure,c'est pas possible ? j'ai essayé, ça fonctionne pas. Peut être faut que j'échappe avec un backslash ?

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    j'avais écrit (en solution provisoire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $variable = str_replace("\'", "'", $variable);
    $variable = str_replace('\"', '"', $variable);
    Pour contrer la config d'un serveur apache ou l'option magic_quote_jesaispaskoi était activé, et qui remplacait les ' et " recus en parametre par des \' et \".

    Ca marchait nickel...

    Je persite donc à penser que le problème ne vient pas du code PHP, mais d'avant...

    pourrais tu faire un copier coller ici d'un de tes champs contenant un accent directement depuis phpmyadmin ?

    edit : test dans une balise code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    '
    `
    ‘
    ’

  9. #9
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    bien sûr...2 exemples

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    288 Chiffre d’affaires 
    313 Meilleur programme d’affiliation
    Mais je vais tester strtr...

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    ’ dans ton exemple est le caractere & # 1 4 6 ;
     
    ce qui est très différent de 
     
    ' qui est le caractere & # 3 9 ; ou encore & a p o s ;
    Je pense donc que tu fais effectivement un amalgame entre plusieurs caracteres ascii !

    edit : copie cole le caractere ’ en tant que 1er parametre dans ton str_replace

  11. #11
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    possible, oui...

    je viens de tester ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $lienmot = strtr($mot, "àâäçéèêëîïùüû", "aaaceeeeiiuuu");
    $lienmot = strtr($lienmot, "\'", "-");
    $lienmot = strtr($lienmot, "\' ", "-");
    $lienmot = strtr($lienmot, "\’", "-");
    $lienmot = strtr($lienmot, "\’ ", "-");
    mais rien à faire !!!

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    enleve le \ dans ton parametre. Si il y est pas dans la base de donnée, il le faut pas dans le str_replace

  13. #13
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    J'ai trouvé !
    Il y avait aussi ce caractère dans ma base:

    ´
    Tu avais raison. Je vais donc nettoyer ma table !!!
    Merci pour ton coup de main, et bonne soirée.

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    no problem ^^

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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