|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : mai 2007 Messages : 322 ![]() |
Bonjour,
J'ai un système qui recherche les valeurs de plusieurs DEFINE dans un fichier et les remplaces par une nouvelle valeur. Dernièrement j'ai rajouté une nouvelle donnée dans ce fichier. Une clé pour crypter mes mots de passe. Le problème est que lorsque je passe en paramètre la valeur de la clé (ex : $2a$07$R68DidcybS5gslnTxgZ3QFBDn$) l'expression régulière semble avoir des problème avec les $ car la valeur renvoyé est ('a$R68DidcybS5gslnTxgZ3QFBDn$) simple cote du début compris. Pour exemple: État de départ État attendu Code :
DEFINE('CLE_CRYPTAGE', '$2a$07$R68DidcybS5gslnTxgZ3QFBDn$') ; Code :
DEFINE('CLE_CRYPTAGE', ''a$R68DidcybS5gslnTxgZ3QFBDn$') ; Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre habitué
![]() Inscription : mars 2009 Messages : 106 ![]() |
Bonjour,
le problème est que les $ suivies de chiffres de $remplacer sont interprétés comme des références aux (éventuelles) parenthèses capturantes de $regex et sont donc remplacer par rien. Il faut donc pour éviter cela échapper les $ avec un antislash. Et puis c'est tout! Code :
En fait, le but de ce script est de modifier un fichier définissant des constantes pour un usage ultérieur, si j'ai bien compris? |
||
|
|
00
|
|
|
#4 |
![]() ![]() |
Il faudrait voir avec preg_quote()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : mars 2009 Messages : 106 ![]() |
Zut! En fait, on peut très bien échapper le $ juste avec un antislash! Tout à l'heure, ça ne marchait pas (je ne sais pas ce que j'ai fichu!). Je corrige donc mon précédent post.
|
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : mai 2007 Messages : 322 ![]() |
preg_quote() est la bonne solution.
Merci de vos réponses. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com