Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2006, 11h40   #1
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 70
Points : 25
Points : 25
Par défaut Remplacement de 2 apostrophes

Bonjour.
J'essaie de remplacer deux apostrophes ('') par un guillemet (").
J'ai essayé sans succés en utilisant la fonction str_replace, chr(39) et chr(34).
Quelqu'un aurait-il la solution ?

Note : le cas concret c'est lorsque je tape 19'' dans un formulaire, il me rentre 19" dans ma bdd.

Merci à vous.
jpascal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h13   #2
Membre confirmé
 
Homme Emmanuel Thierry
Ingénieur systèmes et réseaux
Inscription : décembre 2003
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Thierry
Âge : 24
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : décembre 2003
Messages : 216
Points : 219
Points : 219
essaye
Code :
$str = preg_replace("/\'\'/", $str, "\"");
Sékiltoyai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 16h48   #3
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 70
Points : 25
Points : 25
La syntaxe correcte est preg_replace("/\'\'/", "\"", $str)

Mais ça ne fonctionne pas.
jpascal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 18h05   #4
Membre Expert
 
Avatar de coyotte507
 
Inscription : octobre 2006
Messages : 1 325
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : octobre 2006
Messages : 1 325
Points : 1 226
Points : 1 226
Code :
$chaine = str_replace("''", '"', $chaine);
coyotte507 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 20h48   #5
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
C'est belle est bien la bonne fonction, mais à utiliser comme ceci :
Code :
preg_replace('|\'|', '\"', $chaine);
En espérant avoir aidé.
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2006, 20h14   #6
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
ton '\"' va retourner " mais \" ...

Code :
preg_replace("#'#", '"', $chaine);
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2006, 21h37   #7
Membre confirmé
 
Homme Emmanuel Thierry
Ingénieur systèmes et réseaux
Inscription : décembre 2003
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Thierry
Âge : 24
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : décembre 2003
Messages : 216
Points : 219
Points : 219
Essaye :
preg_replace("/''/","\"", $str);

Je ne me souviens plus s'il faut échapper les ' dans les chaines doublequotées...
Sékiltoyai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2006, 19h58   #8
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 70
Points : 25
Points : 25
Bon ça ne marchetoujours pas.

Code :
preg_replace("#'#", '"', $chaine);
donne
tandis que
Code :
preg_replace("/''/","\"", $str);
donne
A noter que je récupère la chaine par un formulaire GET
donc pour toto''
je récupère en fait toto%27%27
jpascal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 01h49   #9
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Ca sert à rien d'utiliser un preg_replace alors qu'un str_replace est suffisant.

En faisant un rawurldecode avant.

Code php :
echo str_replace('\'\'', '"', rawurldecode($_GET['truc']));
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 11h04   #10
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 70
Points : 25
Points : 25
Merci à Xunil et aux autres pour m'avoir donné la solution.

A noter que la fonction rawurldecode() n'est pas nécessaire dans mon cas.
jpascal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h22.


 
 
 
 
Partenaires

Hébergement Web