Capture et remplacement d'une chaine à l'aide de RegExp dans une requête SQL

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 : Capture et remplacement d'une chaine à l'aide de RegExp dans une requête SQL

par scls19fr » 04 janv. 2009, 09:44

oui enfin ça ne m'aide pas beaucoup car les REGEXP sont utilisées ici pour tester si l'expression matche pas pour faire des captures et des remplacements...

par jojolapine » 04 janv. 2009, 02:59

Capture et remplacement d'une chaine à l'aide de RegExp dans

par scls19fr » 03 janv. 2009, 23:08

Bonsoir,

j'ai dans une base de donnée (MySQL) du texte (provenant d'un wiki).
Pour chaque page du wiki le texte est stocké dans un enregistrement de la
table "wikka_pages" au niveau du champ "body"
J'ai fait un essai en PHP pour une page avec la regexp suivante

Code : Tout sélectionner

preg_replace('/\[{2}([a-z0-9]+:\/\/[^ \t\n\r\f"\|\\\\\^\`\{\}\[\]><]+\.(gif|png|jpg|jpeg)) (.*)\]{2}/', '{{image url="$1" title="$2" alt="$2"}}', $string_from);
et convient (pour transformer

Code : Tout sélectionner

[[http://www.monsite.com/image.png image]]
en

Code : Tout sélectionner

{{image url="http://www.monsite.com/image.png" title="image" alt="image"}}
mais comme dis plus haut je voudrais faire ça pour toutes les pages.
Est-ce possible directement en SQL ? avec une syntaxe qui ressemblerait à

Code : Tout sélectionner

UPDATE wikka_pages SET body=preg_replace('/\[{2}([a-z0-9]+:\/\/[^ \t\n\r\f"\|\\\\\^\`\{\}\[\]><]+\.(gif|png|jpg|jpeg)) (.*)\]{2}/', '{{image url="$1" title="$2" alt="$2"}}', body)
Si ça ne peut pas se faire ainsi comment procériez-vous ?
(je ne connais pas les procédures stockées mais ça peut servir, non ?)

Merci d'avance