OVH Cloud OVH Cloud

ereg_replace

6 réponses
Avatar
MARTIN Samuel
Bonjour,

ereg_replace est une fonction très connue permmettant de remplacer une
occurence par une autre dans une chaine de caractère. Bref je ne penses
rien apprendre à personne.

string ereg_replace ( string pattern, string replacement, string string )


J'aimerais savoir si il possible avec seule 1 appel a cette fonction si
on peut remplacer les mots, articles comme : "le la les mon ton son
eetC..." cela évitera de faire appel plusieurs fois à cette fonction
pour chaque article.

L'idée c'est de récupérer une chaine de caractère plus lègère qui sera
stocké dans une base de donnée afin de s'en servir comme base de mot clé.


Merci d'avance


MARTIN.Samuel

6 réponses

Avatar
Olivier Miakinen

ereg_replace est une fonction très connue permmettant de remplacer une
occurence par une autre dans une chaine de caractère. Bref je ne penses
rien apprendre à personne.

string ereg_replace ( string pattern, string replacement, string string )


En effet.
http://fr.php.net/manual/fr/function.ereg-replace.php

J'aimerais savoir si il possible avec seule 1 appel a cette fonction si
on peut remplacer les mots, articles comme : "le la les mon ton son
eetC..." cela évitera de faire appel plusieurs fois à cette fonction
pour chaque article.


C'est possible, vraisemblablement avec une syntaxe du style de
"(le|la|les|mon|ton|son)" mais cela supprimera alors aussi ces groupes
de lettres à l'intérieur des mots (poulet->pout, tonton->rien, etc.)

Inversement, " (le|la|les|mon|ton|son) " ne les trouvera pas en début de
phrase ou à côté d'un signe de ponctuation.


En fait, l'idéal serait d'utiliser plutôt preg_replace avec b :
http://fr.php.net/manual/fr/function.preg-replace.php
http://fr.php.net/manual/fr/reference.pcre.pattern.syntax.php
preg_replace("b(le|la|les|mon|ton|son)b", "", $string)

Note que tu peux aussi faire plusieurs remplacements en une seule fois
en lui passant des tableaux au lieu de chaînes, comme d'ailleurs avec
la fonction str_replace qui est préférable quand on n'a pas besoin
d'expressions rationnelles.
http://fr.php.net/manual/fr/function.str-replace.php

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
Guillaume Bouchard
MARTIN Samuel wrote:
Bonjour,


Bonjour.
ereg_replace est une fonction très connue permmettant de remplacer une
occurence par une autre dans une chaine de caractère. Bref je ne penses
rien apprendre à personne.


Il est conseillé d'utiliser les regex PCRE (preg_match) à la place.

J'aimerais savoir si il possible avec seule 1 appel a cette fonction si
on peut remplacer les mots, articles comme : "le la les mon ton son
eetC..." cela évitera de faire appel plusieurs fois à cette fonction
pour chaque article.


Tu veux les remplacer par un blanc ?

$str = str_replace(array('le','la','les','mon','ton'...),'',$str);

Sinon avec les pcre, mais c'est moins rapide (Ne pas utiliser les regex
quand il y a une autre solution)

$str = preg_replace('`(le|la|les|mon|ton)`','$1',$str);

--
Guillaume.
Vacances + 30 minutes. Yeah !

Avatar
Guy
ereg_replace est une fonction très connue permmettant de remplacer une
occurence par une autre dans une chaine de caractère. Bref je ne penses
rien apprendre à personne.

string ereg_replace ( string pattern, string replacement, string string )

Bonjour,


strtr ($string,$aray);
avec $aray = array ("string search1" =>"string replace1",
"string search2" =>"string replace2",....
... );

GR


J'aimerais savoir si il possible avec seule 1 appel a cette fonction si
on peut remplacer les mots, articles comme : "le la les mon ton son
eetC..." cela évitera de faire appel plusieurs fois à cette fonction
pour chaque article.

L'idée c'est de récupérer une chaine de caractère plus lègère qui sera
stocké dans une base de donnée afin de s'en servir comme base de mot clé.


Avatar
loufoque
Olivier Miakinen a dit le 17/06/2005 à 12:30:

preg_replace("b(le|la|les|mon|ton|son)b", "", $string)


Tu as oublié les délimiteurs.

Avatar
nospam
MARTIN Samuel wrote:

Bonjour,

ereg_replace est une fonction très connue permmettant de remplacer une
occurence par une autre dans une chaine de caractère. Bref je ne penses
rien apprendre à personne.

string ereg_replace ( string pattern, string replacement, string string )


Dans ce cas tu peux utiliser preg_replace, qui est plus rapide:


http://www.php.net/preg_replace

les deux premiers paramètres peuvent être des tableaux

Exemple:
$str = "Bienvenue toto et titi."
$str preg_replace(array('|toto|', '|titi|'), array('dodo', 'bibi'), $str);

--
Romuald Brunet, ICQ 33033393, http://mog.online.fr

Remplacez nospam par mon prénom pour me contacter par email

Avatar
Olivier Miakinen
Le 18/06/2005 18:12, loufoque m'a répondu :

preg_replace("b(le|la|les|mon|ton|son)b", "", $string)


Tu as oublié les délimiteurs.


Oui.