rechercher/remplacer

Invité
Invité n'ayant pas de compte PHPfrance

03 sept. 2007, 15:04

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.

ViPHP
ViPHP | 5924 Messages

03 sept. 2007, 17:02

Tu as l'utilitaire en ligne de commande replace ainsi que la fonction REPLACE()

Invité
Invité n'ayant pas de compte PHPfrance

04 sept. 2007, 16:44

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?

ViPHP
ViPHP | 5924 Messages

04 sept. 2007, 17:50

Non, tu dois le faire toi même sur tous les champs textes de ta table.

Petit nouveau ! | 4 Messages

08 sept. 2007, 20:37

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]

ViPHP
ViPHP | 5924 Messages

09 sept. 2007, 03:21

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.

Petit nouveau ! | 4 Messages

10 sept. 2007, 14:35

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...

ViPHP
ViPHP | 5924 Messages

10 sept. 2007, 19:40

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…