Page 1 sur 1

optimisation de code

Posté : 26 mars 2008, 13:09
par hakazizi
je voulais savoir si il était possible optimisé tout cela.
vu que c'est en cascade
j'ai deja essayé

Code : Tout sélectionner

$code=str_replace(" " "'" , "-" "-" (etc...) , $codeproduit);
mais cela n'a rien donné.
$code=str_replace(' ', '-', $codeproduit);
$code=str_replace("'", "-", $code);
$code=str_replace('é', 'e', $code);
$code=str_replace('ê', 'e', $code);
$code1=str_replace('/', '', $code);
si il existe une autre fonction permettant de tout faire d'un seul coup au lieu de faire la cascade?
merci

Posté : 26 mars 2008, 13:11
par Jules Petibidon
strtr() est ton ami :)

Re: optimisation de code

Posté : 26 mars 2008, 14:22
par Berzemus
Salut,

Code : Tout sélectionner

$code=str_replace(" " "'" , "-" "-" (etc...) , $codeproduit);
mais cela n'a rien donné.
J'aimerais bien savoir quel logique peut mener à tenter de croire que ça pourrait marcher..

Enfin, mis à part la solution particulièrement adaptée de Jules Petibidon, tu peux utiliser des tableaux dans preg_replace. Un tableau pour les patternes, l'autre pour les remplacements.. ça complexifie le tout, et ce n'est qu'une façon de proposer une des maintes solutions qui s'offrent à toi.

Re: optimisation de code

Posté : 26 mars 2008, 15:19
par h0_noMan
Salut,

Enfin, mis à part la solution particulièrement adaptée de Jules Petibidon, tu peux utiliser des tableaux dans preg_replace. Un tableau pour les patternes, l'autre pour les remplacements.. ça complexifie le tout, et ce n'est qu'une façon de proposer une des maintes solutions qui s'offrent à toi.
L'avantage c'est que str_replace() fonctionne aussi avec les tableaux.

$replace = array(' ',"'",'é','ê','/');
$by      = array('-','-','e','e','' );

$code = str_replace($replace , $by, $codeproduit) ;

Re: optimisation de code

Posté : 26 mars 2008, 15:28
par Hubert Roksor
Pour info, strtr() aussi, accepte un tableau (associatif, plus pratique) comme argument.

Re: optimisation de code

Posté : 26 mars 2008, 15:58
par Berzemus
Salut,

Enfin, mis à part la solution particulièrement adaptée de Jules Petibidon, tu peux utiliser des tableaux dans preg_replace. Un tableau pour les patternes, l'autre pour les remplacements.. ça complexifie le tout, et ce n'est qu'une façon de proposer une des maintes solutions qui s'offrent à toi.
L'avantage c'est que str_replace() fonctionne aussi avec les tableaux.

$replace = array(' ',"'",'é','ê','/');
$by      = array('-','-','e','e','' );

$code = str_replace($replace , $by, $codeproduit) ;
ha oui, je l`oublie toujours celui-la.. :oops:

Re: optimisation de code

Posté : 26 mars 2008, 16:41
par hakazizi
Salut,

Code : Tout sélectionner

$code=str_replace(" " "'" , "-" "-" (etc...) , $codeproduit);
mais cela n'a rien donné.
J'aimerais bien savoir quel logique peut mener à tenter de croire que ça pourrait marcher..

Enfin, mis à part la solution particulièrement adaptée de Jules Petibidon, tu peux utiliser des tableaux dans preg_replace. Un tableau pour les patternes, l'autre pour les remplacements.. ça complexifie le tout, et ce n'est qu'une façon de proposer une des maintes solutions qui s'offrent à toi.
je sait pas j'essaye et quand je bloque je viens demandé de l'aide.
je ne demande pas de l'aide avant d'avoir essayé.
la logique qui m'a amener a penser cela c'est que vue que cela remplace les caractere par un autre j'ai penser qu'en les mettant dans l'ordre cela pourrait eventuellement fonctionner.
certain ont peut-etre bien ris en lisant ce que j'ai essayé.
je n'ai pas une tres grande connaissance du php.
et surtout le rire est bon pour la santé donc pour cela je suis heureux d'avoir contribué a conservé leur santé :P

Re: optimisation de code

Posté : 26 mars 2008, 16:53
par Berzemus
je sait pas j'essaye et quand je bloque je viens demandé de l'aide.
je ne demande pas de l'aide avant d'avoir essayé.
la logique qui m'a amener a penser cela c'est que vue que cela remplace les caractere par un autre j'ai penser qu'en les mettant dans l'ordre cela pourrait eventuellement fonctionner.
certain ont peut-etre bien ris en lisant ce que j'ai essayé.
je n'ai pas une tres grande connaissance du php.
et surtout le rire est bon pour la santé donc pour cela je suis heureux d'avoir contribué a conservé leur santé :P
C'était nullement moqueur.
C'est juste que, un des réflexes à avoir, est de comprendre comment fonctionnent les variables, et comment on peut passer des valeurs à une fonction.

En php, c'est facile. On à soit une chaine, soit un tableau.

Et pour une fonction, les virgules séparent les valeurs.

Si on veut passer plusieurs "chaines" dans une même valeur, alors le tableau est le choix logique.

Dans ton cas, en appliquant cette logique, ça aurait même marché ! :wink:

Il fallait juste pousser un peu et essayer en mettant des tableaux ( ex: array("e","-") ); bref, tu y étais presque. 8-)

Petite note; sur php.net, quand une fonction précise la nature de ses valeurs comme "mixed", c'est qu'on peut y mettre soit une chaine, soit un tableau.

Posté : 26 mars 2008, 23:44
par hakazizi
oops sorry j'avais oublié de mettre résolus je corrige mon erreur de suite.