Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Rechercher/remplacer avec php+mySQL

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
HawkEye
Modérateur
Modérateur

Inscrit le: 23 Fév 2004
Messages: 13228
Localisation: Bah: First! C'te question...!?

URL permanente de ce messagePosté 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.
 
HawkEye Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12620
Localisation: Toulouse

URL permanente de ce messagePosté 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 ?
 
e-kiwi Visiter le site web du posteur
siddhy
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Sep 2004
Messages: 152
Localisation: Perpignan

URL permanente de ce messagePosté 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);
?>
 
siddhy Visiter le site web du posteur
HawkEye
Modérateur
Modérateur

Inscrit le: 23 Fév 2004
Messages: 13228
Localisation: Bah: First! C'te question...!?

URL permanente de ce messagePosté 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"... Rolling Eyes
 
HawkEye Visiter le site web du posteur
ACth
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Nov 2006
Messages: 795

URL permanente de ce messagePosté 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 :

Code:
global $changes;


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.
 
ACth Visiter le site web du posteur
DreamJap
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 06 Mai 2005
Messages: 114

URL permanente de ce messagePosté 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 );
 
DreamJap Visiter le site web du posteur
HawkEye
Modérateur
Modérateur

Inscrit le: 23 Fév 2004
Messages: 13228
Localisation: Bah: First! C'te question...!?

URL permanente de ce messagePosté 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 Wink

Merci!
 
HawkEye Visiter le site web du posteur
NextGeneration
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Sep 2006
Messages: 425
Localisation: Webanthill et Itraque

URL permanente de ce messagePosté 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 Visiter le site web du posteur
NextGeneration
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Sep 2006
Messages: 425
Localisation: Webanthill et Itraque

URL permanente de ce messagePosté 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 Visiter le site web du posteur
NextGeneration
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Sep 2006
Messages: 425
Localisation: Webanthill et Itraque

URL permanente de ce messagePosté 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
?>
 
NextGeneration Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort