possibilité d'incrémentation ?

Samson
Invité n'ayant pas de compte PHPfrance

05 févr. 2013, 15:10

Bonjour,

Petit bout de code :

Code : Tout sélectionner

if (file_exists('thumbs/'.$G01.'.jpg')) $G01_th = "<a href='http://localhost/index3.php?id=$G01'><img src='thumbs/$G01.jpg' title='#01' /></a>"; else $G01_th = "<a href='http://localhost/index3.php?id=$G01'><img src='$nothumb' title='#01' /></a>"; if (file_exists('thumbs/'.$G02.'.jpg')) $G02_th = "<a href='http://localhost/index3.php?id=$G02'><img src='thumbs/$G02.jpg' title='#02' /></a>"; else $G02_th = "<a href='http://localhost/index3.php?id=$G02'><img src='$nothumb' title='#02' /></a>";
Ainsi de suite jusqu'à G18...

peut on faire cela de manière plus concise en incrémentant ? (je n'ai pas bien compris le principe de l'incrémentation, et voit mal comment le mettre en place dans la déclaration de variable).

Merci

Eléphanteau du PHP | 21 Messages

05 févr. 2013, 15:19

Bonjour, oui c'est possible avec une boucle for et une variable qui sera incrémentée à chaque passage dans la boucle. Petit algorithme rapide :

Code : Tout sélectionner

Déclaration de la variable qui sert de compteur et affectation à 1 (premier passage dans la boucle) Pour variable = 1; variable <= 18; variable++ // traitement à effectuer ici Fin pour
A chaque sortie de boucle, la variable sera incrémentée jusqu'à arriver à la valeur 18. Lors du traitement, il faudra également remplacer les valeurs de 1 à 9 par leurs équivalence avec un 0 devant. Un str_replace fera l'affaire ;)

Samson
Invité n'ayant pas de compte PHPfrance

05 févr. 2013, 16:42

Merci de votre réponse.

Voici ce que j'ai mis comme code :

Code : Tout sélectionner

for ($i = 1; $i <= 18; $i++) { if (!file_exists('thumbs/$G'.$i.'.jpg')) $str = str_replace ("src='thumbs/$G'.$i.'.jpg'","src='$nothumb'", $TH$i);} }
J'ai renommé les $G01_th etc en TH1 afin de pouvoir incrémenter les noms de variables, et ai supprimé les "0" inutiles.
Par contre j'ai un soucis ici : $TH$I
je voudrais faire $TH1, $TH2 etc, mais ça buggue et avec cette ligne la page ne s'affiche plus du tout (page blanche)...
Comment je peux faire pour incrémenter la variable ?

Eléphanteau du PHP | 21 Messages

05 févr. 2013, 16:51

Le $G ne devrait-il pas être en dehors des simples quotes pour qu'il soit considéré comme une variable ? Il me semble que dans le premier message, $Gxx représentait le nom d'une variable ;)

Quelque chose du style fonctionnerait peut être
for ($i = 1; $i <= 18; $i++) {   
if (!file_exists('thumbs/'.$G.$i.'.jpg')) {
      $str = str_replace ("src='thumbs/'.$G.$i.'.jpg'","src='$nothumb'", $TH.$i);
}
La variable $i sera incrémentée automatiquement à chaque itération de la boucle for.

Samson
Invité n'ayant pas de compte PHPfrance

10 févr. 2013, 12:20

Merci de ta réponse :D