Inserer un <br/> tout les 5 Posté le 15/11/2007 à 11:04
ProzeMembre
73 posts
Inscrit le : 7/04/2007
Slt, j'ai un probléme pour afficher des miniature d'image, je veus inserer un <br/> tout les 5 images, alors j'ai fait comme sa :
<?PHP
$n=0:
$n++;
if (ereg("5",$n) or ereg("0",$n))
{$retour = "<br/><br/>";}
else {$retour = "";}
?>
Mais le probléme c'est quand sa arive aux image 50>>59 !
Voila le probléme, je ne vois pas comment faire autrement ! une idée ?
Merci !
Réponse à : Inserer un <br/> tout les 5 Posté le 15/11/2007 à 12:15
Salut proze
<?php
$retour = '';
$n = 1;
$i = 0;
$total_image = 100;
while($i < $total_image)
{
// on ajoute l'image
$retour .= '<img src="images/images.jpg" alt="une description" />';
// si $n == 5, du coup on ajoute un <br />
if($n == 5)
$retour .= '<br />';
// si $n == 5, on le remet a 1 pour recommencer ...
if($n == 5)
$n = 1;
else
$n++;
// et pour terminer, on increment $i pour que la boucle s'arrete un jours !
$i++;
}
//on affiche le tout
echo $retour;
?>
Le principe étant de définir $n à 1, puis de l'incrementer de 1 à chaque boucle. Quand on arrive à 5, on le remet à 1 et on affiche un <br />.
Y'a un code plus court, mais ceci est pour que ce soit facile à comprendre.
$i est selon ton code.

_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Inserer un <br/> tout les 5 Posté le 15/11/2007 à 20:09
3run0Administrateur
1744 posts
Inscrit le : 1/10/2004
lit cette page elle va te plaire
Ici même :)
Positionement et affichage <==> CSS_______________________
_ww.gabian-herault.com
Réponse à : Inserer un <br/> tout les 5 Posté le 15/11/2007 à 23:54
prozeMembre
73 posts
Inscrit le : 7/04/2007
Slt, merci c'est asser facile comme truc mais revenir tout le temp a zero j'crois pas que j'y aurais pensez !
3run0, je sait faire tout sa le code qui est la haut est juste la parti ou je galere avec mes 5 !
Sinon en gros sa donne sa pour afficher les miniature :
<?php
$get_dossier = "photos/".$_GET['DIR']."/vignette/";
$dir = opendir($get_dossier);
$n = 0;
while($file = readdir($dir)) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file))
{
$n++;
if (ereg("5",$n) or ereg("0",$n))
{$retour = "<br/><br/>";}
else {$retour = "";}
$explode_file = explode(".", $file);
$name_file = $explode_file[0];
echo ' <a href="photos/'.$_GET['DIR']."/".$name_file.'".jpg" title="" rel="lightbox[roadtrip]" >';
echo '<img src="'.$get_dossier.$file.'" alt="'.$get_dossier.$file.'"/>';
echo '</a>'.$retour.'';
}
}
closedir($dir);
?>
_______________________
Aucun
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 08:34
Laisse tombé les ereg ... ça sert strictement à rien du tout.
Tu test si une valeur est égale ou non à 5 ... pas si la variable contient 5 ou 0...
donc :
$retour = '';
if($n == 5 || $n == 0)
$retour = '<br /><br />';
en plus simplifier avec une condition ternaire :
$retour = ($n == 5 || $n == 0) ? "<br /><br />" : "";
Les ereg sont utiliser avec des expression régulières.
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 13:20
prozeMembre
73 posts
Inscrit le : 7/04/2007
Slt, j'ai suivit ton code, et sa marche trés bien !
donc sa resemble à sa :
<?php
// Declaration du dossier et ouverture
$get_dossier = "photos/".$_GET['DIR']."/vignette/";
$dir = opendir($get_dossier);
// Declaration variables
$n = 0; $i = 0;
// On compte le nombre d'image.
$tab = glob($get_dossier."{*.gif,*.jpg,*.jpeg,*.png}", GLOB_BRACE);
$nb_img = count($tab);
// ======================
while($file = readdir($dir) or $i<$nb_img) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file)) {
// Test pour le retour a la ligne
$i++; $n++;
if($n == 5)
{$retour = "<br/>"; $n = 0;}
else { $retour = ""; }
// Recuperation du nom du fichier sans l'extention
$explode_file = explode(".", $file);
$name_file = $explode_file[0];
// Mise en forme
echo ' <a href="photos/'.$_GET['DIR']."/".$name_file.'".jpg" title="" rel="lightbox[roadtrip]" >';
echo '<img src="'.$get_dossier.$file.'" border="0" alt="'.$get_dossier.$file.'"/>';
echo '</a>'.$retour.'';
// ======================
}
}
// Fermeture du dossier
closedir($dir);
?>
Voila, sinon j'aurai bien voulu des info sur ta facon de faire les if et else sans les {} ?
Dans quel condition ?
Merci !
_______________________
Aucun
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 14:23
Les differente façon de faire la même chose :
<?php
if($n == 5)
{
$retour = "<br/>";
}
else
{
$retour = "";
}
?>
soit
<?php
$retour = '';
if($n == 5)
$retour = '<br />';
?>
soit
<?php
if($n == 5)
$retour = "<br/>";
else
$retour = "";
?>
soit :
<?php
$retour = ($n == 5) ? "<br />" : "";
?>
Bref, y'a plein de façon d'ecrire une condition ... et plein de façon de comment penser une condition.
Si tu ne veut pas mettre d'accolade "{" ou "}" il faut avoir UNE seul action à faire genre :
<?php
if($n == 5)
$retour = '<br />';
$n = 0;
?>
$retour sera bien egale a <br /> si $n egale 5, mais $n sera remis a 0 a chaque fois.
donc dans ce cas précis, il faudrai mettre les accolade
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 14:38
prozeMembre
73 posts
Inscrit le : 7/04/2007
Ok super, y'a l'choix !
Celle la me plait bien :
<?php
$retour = ($n == 5) ? "<br />" : "";
?>
si j'ai bien comprit c'est
$retour = (si $n ==5) à "sa" sinon "sa"
?
_______________________
Aucun
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 15:06
exactement.
ça s'appelle une condition ternaire.
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 19:39
3run0Administrateur
1744 posts
Inscrit le : 1/10/2004
desolé d'insister mais le CSS et un peu de math :p
des vignettes de 100px de large passerons automatiquement a la ligne toute les 5 images si on les affichent dans un div de 520px.
Dans ce cas pourquoi forcer la mise en page en PHP (serveur) alors que le poste client le gère trés bien grace au CSS
Un code plus légé et moins de travail pour le serveur avec un affichage équivalent me semble être une trés bonne chose non?
_______________________
_ww.gabian-herault.com
Réponse à : Inserer un <br/> tout les 5 Posté le 16/11/2007 à 20:13
3run0, surement que oui, mais y'a des fois ou tu peut pas laisser allez au flux de la page
enfin, bref, oui, c'est aussi une autre solution !
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.