OVH Cloud OVH Cloud

Remplacer un caratère

3 réponses
Avatar
p_geni...
Bonjour,

je cherche à remplacer les "simple quotes" ' par \' avant
d'insérer des données dans une table mysql

pour le moment j'utilise cette regexp

$value =~ s/'/\\'/g;


mais me demande s'il existe un moyen plus rapide de le faire
sans passer par une regexp ni par l'appel d'une fonction du module
DBI.

peut-on le faire avec tr?

Merci de votre aide,
Pierre.
-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/

3 réponses

Avatar
Jérémy JUST
On 17 Oct 2005 11:05:14 GMT
(Pierre Génieys) wrote:

pour le moment j'utilise cette regexp

$value =~ s/'/'/g;


Ça me semble être la bonne façon.


mais me demande s'il existe un moyen plus rapide de le faire
sans passer par une regexp


Les regexps sont très utilisées en Perl. Quand leur emploi est aussi
justifié que dans le cas présent, il n'y a aucune raison de chercher autre
chose.
Le moteur de regexps est très efficace et parfaitement intégré au reste
de l'interpréteur.


ni par l'appel d'une fonction du module DBI.


Euh... Là, pour le coup, c'est le marteau-pilon pour battre des oeufs en
neige.


peut-on le faire avec tr?


« tr » remplace *un* caractère par *un* caractère. Donc ici, ce n'est
pas adapté.


--
Jérémy JUST

Avatar
Paul Gaborit
À (at) Mon, 17 Oct 2005 15:27:04 +0200,
Jérémy JUST écrivait (wrote):
On 17 Oct 2005 11:05:14 GMT
(Pierre Génieys) wrote:
[...]

ni par l'appel d'une fonction du module DBI.


Euh... Là, pour le coup, c'est le marteau-pilon pour battre des oeufs en
neige.


L'intérêt d'utiliser DBI *juste* pour ça est effectivement nul. Mais,
lorsqu'on a besoin de faire cela, c'est qu'on fait plein d'autres
choses avec son SGBD. Et là DBI est bien pratique.

L'autre avantage de DBI est de s'abstraire du SGBD employé. Si on
change de SGBD ou si il évolue, on peut compter sur l'auteur du DBD
correspondant pour le faire correctement et gérer l'évolution.

La fonction existe donc dans DBI (ou plutôt dans le DBD correspondant
au SGBD utilisé). Mais il ne faut pas l'utiliser directement. Il vaut
mieux utiliser les 'place holder' de DBI.

C'est exactement la même chose que pour le module CGI (ou CGI::Lite)
ou le module URL. Effectivement, on peut faire les choses soi-même "à
la main", mais c'est plus sûr et simple de prendre du code largement
utilisé/debogué...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>


Avatar
p_geni...
Merci à tous de vos réponses,
Pierre.
-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/