code long, possibilité de le condenser ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : code long, possibilité de le condenser ?

Re: code long, possibilité de le condenser ?

par Samson » 10 févr. 2013, 12:16

Merci à vous deux, je vais tester cela.

Re: code long, possibilité de le condenser ?

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

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 ?

par xTG » 05 févr. 2013, 18:41

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.

code long, possibilité de le condenser ?

par Samson » 05 févr. 2013, 14:59

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 !