Page 1 sur 1
rechercher/remplacer
Posté : 03 sept. 2007, 15:04
par Invité
Bonjour à tous,
est-il possible de faire des rechercher/remplacer sur l'ensemble d'une bdd?
Par exemple, je souhaite remplacer dans toutes les tables, tous les "é" par des "à" (modifs sur les données) quelquesoit le champ ou l'engergistrement où se trouve ce caractère.
Merci pour vos réponses.
Posté : 03 sept. 2007, 17:02
par Sékiltoyai
Tu as l'utilitaire en ligne de commande
replace ainsi que la fonction
REPLACE()
Posté : 04 sept. 2007, 16:44
par Invité
je n'ai pas accès à la ligne de commande chez mon hébergeur mutualisé.
REPLACE(str,from_str,to_str) a l'air intéressant.
Seul pb, cette fonction demande en 1er argument la chaine à traiter.
Je voudrais traiter tous les mots de ma bdd qui contiennent "é", pas un mot en particulier.
Y a til une syntaxe pour travailler toutes les occurences d'un caractère et pas toutes les occurences d'un mot?
Posté : 04 sept. 2007, 17:50
par Sékiltoyai
Non, tu dois le faire toi même sur tous les champs textes de ta table.
Posté : 08 sept. 2007, 20:37
par lminfo
Une façon relativement simple d'effectuer les remplacements pourrait être de suivre les étapes suivantes:
1. Exporter chaque table dans un fichier texte (format CSV)
2. Effectuer le remplacement sur chaque ligne du fichier à l'aide des expressions régulières et de la fonction PHP ereg_replace (P1, P2, Ch)
Dans laquelle la fonction recherche toutes les occurences du patron P1 ('é') dans la chaîne Ch et la remplace par le patron P2 ('à')
3. Enfin, importer le fichier CSV modifié vers la BD[/i][/b]
Posté : 09 sept. 2007, 03:21
par Sékiltoyai
Euh, en cas d'export, si c'est fait par php, cela va demander énormément de ressources, et cela peu surcharger la mémoire de php. Il vaut mieux utiliser la ligne de commande, et les commandes mysql pour exécuter une requète (il doit y avoir peut être aussi mysql_dump pour exporter une base), et la commande sed pour effectuer des remplacements.
Posté : 10 sept. 2007, 14:35
par lminfo
Oui je comprends!
Je pensais plutôt à un produit comme phpMyAdmin pour faire l'import/export...
Ensuite, on peut se servir de SED ou de tout autre éditeur de texte...
Posté : 10 sept. 2007, 19:40
par Sékiltoyai
Ouais mais l'avantage de sed c'est qu'il est beaucoup plus puissant que tout remplacement d'éditeur texte (sauf peut être emacs

), mais le problème, c'est que si tu n'es pas sous un système UNIX, tu n'auras pas accès à ce programme…