|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
HawkEye Modérateur

Inscrit le: 23 Fév 2004 Messages: 13228 Localisation: Bah: First! C'te question...!?
|
Posté le : Lun Juin 11, 2007 12:39 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
Hello,
Je suis confronté à une petite difficulté, mais je pense qu'il y'a du monde ici qui saura comment faire.
J'ai d'une part une table de plusieurs centaines de lignes, sur deux colonnes:
[ champ1 | champ2 ]
J'ai d'autre part un texte, contenu dans $texte
Je voudrais pouvoir faire l'output de $texte_mod sachant que $texte_mod correspond à $texte, duquel chaque string qui correspond à une valeur de "champ1" aura été remplacé par l'équivalent de "champ2".
D'avance merci pour votre aide. |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12620 Localisation: Toulouse
|
Posté le : Lun Juin 11, 2007 12:52 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
| mettre champ1 dans un tableau, champ2 dans un autre, et faire un str_replace de tableau1 par tableau2 dans texte tout simple ne marche pas ? |
|
| |
|
 |
siddhy WRInaute occasionnel

Inscrit le: 20 Sep 2004 Messages: 152 Localisation: Perpignan
|
Posté le : Lun Juin 11, 2007 13:05 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
Salut,
et avec un strtr ?
| Code: |
<?php
$trans = array("bonjour" => "salut", "salut" => "bonjour");
echo strtr("salut à tous, j'ai dit bonjour", $trans);
?>
|
|
|
| |
|
 |
HawkEye Modérateur

Inscrit le: 23 Fév 2004 Messages: 13228 Localisation: Bah: First! C'te question...!?
|
Posté le : Lun Juin 11, 2007 13:17 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
J'ai une fonction existante, comme ceci:
| Code: |
function makechanges($text) {
$changes= array(
'this' => 'that',
'here' => 'there'
);
return str_replace( array_keys($corrections), array_values($changes), $text );
}
|
...fonctionne bien, mais je ne sais pas comment alimenter $changes à la suite d'une requête, plutôt que comme ici "statique"...  |
|
| |
|
 |
ACth WRInaute passionné

Inscrit le: 11 Nov 2006 Messages: 795
|
Posté le : Lun Juin 11, 2007 13:29 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
Pour un truc temporaire, vite fait ...
Tu déclare en haut ta variable en global :
Ensuite tu gère la modification de ta variable et y a plus cas !
| Code: |
// début du script (du moins avant la "boucle")
global $changes;
// ta fonction
function makechanges($text) {
return str_replace( array_keys($corrections), array_values($changes), $text );
}
// requete
........
// modification de la variable $changes
$changes= array(
'this' => 'that',
'here' => 'there'
);
// appel de la fonction
....
// et on recommence
....
|
Sinon, tu peux aussi passer $changes en paramètre, tout comme $text. |
|
| |
|
 |
DreamJap WRInaute occasionnel

Inscrit le: 06 Mai 2005 Messages: 114
|
Posté le : Lun Juin 11, 2007 13:49 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
Essaye ça :
| Code: |
$changes = array();
req = mysql_query("SELECT champ1, champ2 FROM table");
while( $donnees = mysql_fetch_assoc($req) ) {
$champ1 = $donnees['champ1'];
$changes[$champ1] = $donnees['champ2'];
}
$text_mod = str_replace( array_keys($corrections), array_values($changes), $text );
|
|
|
| |
|
 |
HawkEye Modérateur

Inscrit le: 23 Fév 2004 Messages: 13228 Localisation: Bah: First! C'te question...!?
|
Posté le : Lun Juin 11, 2007 21:04 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
Merci pour votre aide, encore un peu "fine tuning" et ça marchera nickel
Merci! |
|
| |
|
 |
NextGeneration WRInaute impliqué

Inscrit le: 27 Sep 2006 Messages: 425 Localisation: Webanthill et Itraque
|
Posté le : Lun Juin 11, 2007 21:15 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
lis la doc php sur ces fonctions :
ob_start();
ob_end_*();
notemment, tu peux leur passer une fonction filtrante.
Ca me parait le plus adapté à ton cas. |
|
| |
|
 |
NextGeneration WRInaute impliqué

Inscrit le: 27 Sep 2006 Messages: 425 Localisation: Webanthill et Itraque
|
Posté le : Lun Juin 11, 2007 21:16 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
tiens, un exemple tout cuit:
<?php
function callback($buffer)
{
// remplace toutes les pommes par des carottes
return (ereg_replace("pommes de terre", "carottes", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>C'est comme comparer des carottes et des pommes de terre.</p>
</body>
</html>
<?php
ob_end_flush();
?> |
|
| |
|
 |
NextGeneration WRInaute impliqué

Inscrit le: 27 Sep 2006 Messages: 425 Localisation: Webanthill et Itraque
|
Posté le : Lun Juin 11, 2007 21:24 Sujet du message: Rechercher/remplacer avec php+mySQL |
|
|
Solution prete a l'emploi ( mélange de la méthode ob_ et de posts plus haut )
<?php
$changes = array();
req = mysql_query("SELECT champ1, champ2 FROM table");
while( $donnees = mysql_fetch_assoc($req) ) {
$champ1 = $donnees['champ1'];
$changes[$champ1] = $donnees['champ2'];
}
function callback($buffer)
{
// remplace toutes les pommes par des carottes
return str_replace( array_keys($corrections), array_values($changes), $buffer );
}
// a partir de cette instruction, tous les mots seront replacés
ob_start("callback");
?>
<?php
ob_end_flush();
// fin du remplacement
?> |
|
| |
|
 |
| |
|
|