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