Nettoyer multple anti_slash

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Nettoyer multple anti_slash

Re: Nettoyer multple anti_slash

par Ehplod » 01 août 2016, 13:37

OK, merci, je vais tester cela.

Re: Nettoyer multple anti_slash

par @rthur » 27 juil. 2016, 10:09

Bonjour,

A priori je dirai une regex comme celle là :

Code : Tout sélectionner

(\\*)(?:_|%)
Testable ici : https://www.regex101.com/r/qN3fQ0/1

Nettoyer multple anti_slash

par Ehplod » 27 juil. 2016, 10:01

Salut,

Tout est dans le titre. :mrgreen:

J'ai une bdd à nettoyer.
Dans les champs des tables, je retrouve, suite à un script défectueux, de multiple anti-slash.
Chaque fois qu'il enregistrait un _ ou un %, il collait un \ devant.
Résultats, à chaque mise à jour ou modif, il en ajoutait un.
Je me retrouve avec des "bal bla \\\\_ bla bla" ou des "bal bla bla \\\\\% bla bla"

Le script a été corrigé, donc, il n'enregistre plus avec ce problème.

Comment nettoyer ma base ?

Si j'appel avec stripslashes, il vire le premier \.
J'aimerais faire en sorte qu'il supprime TOUS les \ qu'il trouve avant _ ou %.
Un peu à la manière de l'effacement des espaces en trop,

Code : Tout sélectionner

preg_replace('/\s\s+/', ' ', $str);
mais en ciblant ces 2 caractères uniquement.

Alors je vois bien qu'il faut utiliser un preg_replace... mais je sèche totalement sur la pattern a utiliser...

Merci de votre aide