replace PHP

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

caro
WRInaute impliqué
WRInaute impliqué
 
Messages: 871
Inscription: 21 Juil 2003

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 impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

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 passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

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 impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

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 passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

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 impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

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 passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

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 impliqué
WRInaute impliqué
 
Messages: 592
Inscription: 27 Mai 2004

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 passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Message le Mer Juil 06, 2005 13:22

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

caro
WRInaute impliqué
WRInaute impliqué
 
Messages: 871
Inscription: 21 Juil 2003

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 les experts Google Analytics de Ranking Metrics.

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