optimisation de code

Mammouth du PHP | 558 Messages

26 mars 2008, 13:09

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

Eléphant du PHP | 259 Messages

26 mars 2008, 13:11

strtr() est ton ami :)

ViPHP
ViPHP | 4039 Messages

26 mars 2008, 14:22

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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 445 Messages

26 mars 2008, 15:19

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) ;

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

26 mars 2008, 15:28

Pour info, strtr() aussi, accepte un tableau (associatif, plus pratique) comme argument.

ViPHP
ViPHP | 4039 Messages

26 mars 2008, 15:58

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:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 558 Messages

26 mars 2008, 16:41

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

ViPHP
ViPHP | 4039 Messages

26 mars 2008, 16:53

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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 558 Messages

26 mars 2008, 23:44

oops sorry j'avais oublié de mettre résolus je corrige mon erreur de suite.