Page 1 sur 1

code long, possibilité de le condenser ?

Posté : 05 févr. 2013, 14:59
par Samson
Bonjour à tous,
Voici mon code :

Code : Tout sélectionner

if (strpos($file1, $G01) OR strpos($file2, $G01) OR strpos($file3, $G01) OR strpos($file4, $G01)){ $G01_th = str_replace ("$G01.","$G01~.", $G01_th);} if (strpos($file1, $G02) OR strpos($file2, $G02) OR strpos($file3, $G02) OR strpos($file4, $G02)){ $G02_th = str_replace ("$G02.","$G02~.", $G02_th);} if (strpos($file1, $G03) OR strpos($file2, $G03) OR strpos($file3, $G03) OR strpos($file4, $G03)){ $G03_th = str_replace ("$G03.","$G03~.", $G03_th);} if (strpos($file1, $G04) OR strpos($file2, $G04) OR strpos($file3, $G04) OR strpos($file4, $G04)){ $G04_th = str_replace ("$G04.","$G04~", $G04_th);} if (strpos($file1, $G05) OR strpos($file2, $G05) OR strpos($file3, $G05) OR strpos($file4, $G05)){ $G05_th = str_replace ("$G05.","$G05~", $G05_th);} if (strpos($file1, $G06) OR strpos($file2, $G06) OR strpos($file3, $G06) OR strpos($file4, $G06)){ $G06_th = str_replace ("$G06.","$G06~", $G06_th);} if (strpos($file1, $G07) OR strpos($file2, $G07) OR strpos($file3, $G07) OR strpos($file4, $G07)){ $G07_th = str_replace ("$G07.","$G07~", $G07_th);} if (strpos($file1, $G08) OR strpos($file2, $G08) OR strpos($file3, $G08) OR strpos($file4, $G08)){ $G08_th = str_replace ("$G08.","$G08~", $G08_th);} if (strpos($file1, $G09) OR strpos($file2, $G09) OR strpos($file3, $G09) OR strpos($file4, $G09)){ $G09_th = str_replace ("$G09.","$G09~", $G09_th);}
ainsi de suite jusqu'à $G19...

N'y aurait il pas un moyen de faire quelque chose du genre :
if (strpos($file1, $G[01-19]) OR strpos($file2, $G[01-19]) OR strpos($file3, $G[01-19]) OR strpos($file4, $G[01-19])){
$G[01-19]_th = str_replace ("$G[01-19].","$G[01-19]~", $G[01-19]_th);}
?

En fait recherche la présente de G01 par exemple dans 4 photos, et si l'une ou plusieurs est G01, alors une bande de vignettes doit voir l'icone de la photo changer (d'ou l'ajout du ~ dans le str_replace).

Merci de votre aide pour raccourcir ce code hyper long !

Re: code long, possibilité de le condenser ?

Posté : 05 févr. 2013, 18:41
par xTG
Stockes tes variables dans un array.
Après tu pourras faire un foreach sur ton array et effectuer le même traitement en trois lignes.

Re: code long, possibilité de le condenser ?

Posté : 06 févr. 2013, 16:24
par dix2
salut,

voici le code condensé:
for ($i = 1; $i <= 19; $i++) {
    $num = sprintf("G%02d", $i);
    if (strpos($file1, $$num) OR strpos($file2, $$num) OR strpos($file3, $$num) OR strpos($file4, $$num)){
        ${$num.'_th'} = str_replace ($$num.'.', $$num.'~.', ${$num.'_th'});
    }
}
@+
dix2

Re: code long, possibilité de le condenser ?

Posté : 10 févr. 2013, 12:16
par Samson
Merci à vous deux, je vais tester cela.