Rechercher/remplacer avec php+mySQL
10 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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.
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.
Salut,
et avec un strtr ?
et avec un strtr ?
- Code: Tout sélectionner
<?php
$trans = array("bonjour" => "salut", "salut" => "bonjour");
echo strtr("salut à tous, j'ai dit bonjour", $trans);
?>
J'ai une fonction existante, comme ceci:
...fonctionne bien, mais je ne sais pas comment alimenter $changes à la suite d'une requête, plutôt que comme ici "statique"...
- Code: Tout sélectionner
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"...
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 !
Sinon, tu peux aussi passer $changes en paramètre, tout comme $text.
Tu déclare en haut ta variable en global :
- Code: Tout sélectionner
global $changes;
Ensuite tu gère la modification de ta variable et y a plus cas !
- Code: Tout sélectionner
// 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.
Essaye ça :
- Code: Tout sélectionner
$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 );
- NextGeneration
- WRInaute impliqué

- Messages: 425
- Inscription: Mer Sep 27, 2006 18:34
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.
ob_start();
ob_end_*();
notemment, tu peux leur passer une fonction filtrante.
Ca me parait le plus adapté à ton cas.
- NextGeneration
- WRInaute impliqué

- Messages: 425
- Inscription: Mer Sep 27, 2006 18:34
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();
?>
<?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é

- Messages: 425
- Inscription: Mer Sep 27, 2006 18:34
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
?>
<?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
?>
10 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Tiret ou underscore ? Enfin la réponse !
- Gestion des langues et des sessions en PHP / MySQL
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Google lance le Desktop Search
- Design de WRI version 3
- AOL pourrait remplacer son partenaire Google par MSN
- Passage à l'heure d'été/hiver sur un forum phpBB
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Google a désigné le vainqueur du concours de programmation 2002
- Google reconnait-il les différentes formes de mots ? (singulier/pluriel et autres)
- Remplacer too.php par tutu.php avec ajout 1 parametre en plu
- PHP Rechercher un mot dans un dossier de pages html
- rechercher dans les fichiers php avec windows xp
- Script php permettant de rechercher des vidéos sur internet
- [PHP-MySQL] : argument is not a valid MySQL ressource
- Remplacer 60 pages html en 1 page php
- fonction pour remplacer des strings (php)
- Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par
- Remplacer du texte entre balises par un code en php
- Remplacer l'url rewriting par une variable PHP
- Remplacer <?php include .... par javascript pour robotst
- [Résolu] PHP-Remplacer une image (lien) par un lien texte
- Compatibilité PHP 4.4.2 -> PHP 5.1.6 et MySQL 3.23 ->
- PHP 4 - Mysql 4.x VS PHP 5 - Mysql 5
- MYSQL/PHP
Consultez la description détaillée des produits ou services de Google suivants : Google 3D Warehouse
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum