replace PHP

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

caro
WRInaute passionné
WRInaute passionné
 
Messages: 871
Inscription: Lun Juil 21, 2003 18:13

replace PHP

Message le Mer Juil 06, 2005 12:31

Salut les gars, j'ai besoin d'aide please

je veux supprimer des mots dans un texte,
j'ai essayé :
$texte = str_replace("motàsupprimer1","",$texte);
$texte = str_replace("motàsupprimer2","",$texte);
$texte = str_replace("motàsupprimer3","",$texte);
...
cependant si j'utilise cette fonction ca me supprime aussi les mots similaires (par exemple pour "chien" ca me supprime aussi "chienne")

j'ai pensé à mettre des points pour séparer les mots :
$texte = str_replace(".motàsupprimer.","",$texte);
comme ça, ça marche,

mais y a pas plus simple ???
car il faut ajouter les points entre tous les mots, chercher les suppressions et ensuite re-enlever les points entre chaque mot ... enfin galère

merci de votre aide
carole


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Mer Juil 06, 2005 13:04

Salut

Regarde si ca marche pour ton cas ca, je sais pas si ca remplace par exemple renards par grizzlys
Code: Tout sélectionner
<?php
$string = "Le renard marron agile saute par dessus le chien paresseux.";

$patterns[0] = "/agile/";
$patterns[1] = "/marron/";
$patterns[2] = "/renard/";

$replacements[2] = "grizzly";
$replacements[1] = "brun";
$replacements[0] = "lent";

echo preg_replace($patterns, $replacements, $string);
?>
Dernière édition par mowmow le Mer Juil 06, 2005 13:05, édité 1 fois.


jeromax
WRInaute accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

Message le Mer Juil 06, 2005 13:05

si tes mots sont séparés par des espaces:
Code: Tout sélectionner
$texte = " ".trim($texte)." ";
$texte = str_replace(" motàsupprimer1 "," ",$texte);
$texte = str_replace(" motàsupprimer2 "," ",$texte);
$texte = str_replace(" motàsupprimer3 "," ",$texte);
$texte = trim($texte);


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Mer Juil 06, 2005 13:06

jeromax a écrit:si tes mots sont séparés par des espaces:
Code: Tout sélectionner
$texte = " ".trim($texte)." ";
$texte = str_replace(" motàsupprimer1 "," ",$texte);
$texte = str_replace(" motàsupprimer2 "," ",$texte);
$texte = str_replace(" motàsupprimer3 "," ",$texte);
$texte = trim($texte);


Oui mais si le mot est "je" ou WRI

Le cas suivant marchera pas :

Je suis sur WRI.

Parce que pas d'espaces soit devant, soit derrière.

[EDIT] Ooops en fait ca marchera bien j'ai rien dit ^^
[EDIT 2] En fait ca marchera pas pour sous-marin par exemple (si on veut enlever "marin"


jeromax
WRInaute accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

Message le Mer Juil 06, 2005 13:10

oui mais il me semble que sous-marin est un mot à part entière....
Dernière édition par jeromax le Mer Juil 06, 2005 13:11, édité 1 fois.


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Mer Juil 06, 2005 13:10

Les mots en fin de phrases marcheront pas non plus : Je suis allé à la plage. y'a pas d'espace après "plage" ;)


jeromax
WRInaute accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

Message le Mer Juil 06, 2005 13:13

Ce n'est pas ce que veut Caro: Elle dit que ça marche en mettant des points entre chaque mot... donc c'est plus une suppression d'une liste de mot que d'un texte (c'est ce que j'ai compris entous cas), sinon elle perd tous les points initiaux.


pipologue
WRInaute passionné
WRInaute passionné
 
Messages: 592
Inscription: Jeu Mai 27, 2004 22:24

Message le Mer Juil 06, 2005 13:15

eregi_replace(" mot1 | mot2 | mo3 "," ",$texte);
ou
ereg_replace(" mot1 | mot2 | mo3 "," ",$texte); sans tenir compte de la casse,

Sinon preg est très bien adapté...


jeromax
WRInaute accro
WRInaute accro
 
Messages: 1087
Inscription: Mer Nov 12, 2003 17:48

Message le Mer Juil 06, 2005 13:22

c'est eregi_replace qui ne tient pas compte de la casse....

caro
WRInaute passionné
WRInaute passionné
 
Messages: 871
Inscription: Lun Juil 21, 2003 18:13

Message le Mer Juil 06, 2005 14:17

merci les gars,
en mettant des espaces ou des points, le "replace" marche comme je l'avais fait,
je pensais qu'il existait une fonction plus précise que le replace et moins galère.

merci pour votre participation
caro


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités