par
Arcanis » 12 févr. 2007, 13:57
[edit: Désolé, je croyais avoir posté un nouveau sujet

]
Salut!
J'utilise une regexp mysql pour rechercher des mots dans des champs, et j'aurais besoin d'échapper tout les caractères que mysql pourrait utiliser comme attribut d'expression régulière (point, accolades, etc...).
J'ai donc fait ce code:
foreach($params_recherche['keywords'] as $key => $val) {
$params_recherche['keywords'][$key] = str_replace(".","\.",$val);
$params_recherche['keywords'][$key] = str_replace("[","\[",$val);
$params_recherche['keywords'][$key] = str_replace("]","\]",$val);
$params_recherche['keywords'][$key] = str_replace("(","\(",$val);
$params_recherche['keywords'][$key] = str_replace(")","\)",$val);
$params_recherche['keywords'][$key] = str_replace("{","\{",$val);
$params_recherche['keywords'][$key] = str_replace("}","\}",$val);
$params_recherche['keywords'][$key] = str_replace("^","\^",$val);
$params_recherche['keywords'][$key] = str_replace("$","\$",$val);
}
Mais malheureusement, il ne marche pas (même quand j'échappe les slashs par d'autres slashs)
Où est-ce que je me suis trompé?
Merci d'avance!
[edit: Désolé, je croyais avoir posté un nouveau sujet :cry: ]
Salut!
J'utilise une regexp mysql pour rechercher des mots dans des champs, et j'aurais besoin d'échapper tout les caractères que mysql pourrait utiliser comme attribut d'expression régulière (point, accolades, etc...).
J'ai donc fait ce code:
[php] foreach($params_recherche['keywords'] as $key => $val) {
$params_recherche['keywords'][$key] = str_replace(".","\.",$val);
$params_recherche['keywords'][$key] = str_replace("[","\[",$val);
$params_recherche['keywords'][$key] = str_replace("]","\]",$val);
$params_recherche['keywords'][$key] = str_replace("(","\(",$val);
$params_recherche['keywords'][$key] = str_replace(")","\)",$val);
$params_recherche['keywords'][$key] = str_replace("{","\{",$val);
$params_recherche['keywords'][$key] = str_replace("}","\}",$val);
$params_recherche['keywords'][$key] = str_replace("^","\^",$val);
$params_recherche['keywords'][$key] = str_replace("$","\$",$val);
}[/php]
Mais malheureusement, il ne marche pas (même quand j'échappe les slashs par d'autres slashs) :cry:
Où est-ce que je me suis trompé?
Merci d'avance!