par
Tiger » 16 févr. 2012, 17:03
Bonjour, je dois créer une galerie de photo dynamiquement. J'ai au-delà de 250 images à mettre dans la galerie. Ce que je souhaite faire, c'est que mon code php lise le répertoire au complet puis affiche toutes les images. Cependant, je veux éviter que toutes les images se chargent dans une seule page (c'est beaucoup trop lourd).
Jusqu'à présent, j'avais utilisé un script jQuery, qui fonctionnait super bien, mais beaucoup trop long à charger (il charge les 250 grandes images).
J'ai donc décidé d'utiliser une méthode plus conventionnelle et d'y aller avec plusieurs pages.
J'ai cependant beaucoup de difficulté à y arriver.
Voici mon code :
<?php
//S'il n'y a rien comme valeur de début
if($debut=="")
{
//Début est à 0
$debut=0;
}
// LEs dossiers dans lesquels les images sont"
$folder = "images/thumbs"; // Dossier des thumbnails
$folder2 = "images/background"; // Dossier des grandes images
// Compter
$directory = "images/background/";
if (glob($directory . "*.jpg") != false)
{
$filecount = count(glob($directory . "*.jpg"));
echo $filecount;
}
else
{
echo 0;
}
// Bombre d'image à afficher par page
$nombre = 25;
// ON CREE UN INDEX
$index = $debut * $nombre;
// POUR LES ELEMENTS DU TABLEAU $A COMPRIS ENTRE INDEX ET INDEX +3
$dossier = opendir($folder);
while ($Fichier = readdir($dossier)) {
if ($Fichier != "." && $Fichier != "..") {
//On assigne le chemin complet, les noms de fichiers sont les mêmes dans les 2 répertoire
$nomFichier = $folder."/".$Fichier;
$nomFichier2 = $folder2."/".$Fichier;
//Boucle for pour l'affichage page par page, c'est là que ça bloque je crois.
for ($i = $index; $i < $index + $nombre && $i < $filecount ; $i++)
{
// ON DEFINIT LE NOMBRE
$num = $a[$i];
?>
<a href="<?php echo $nomFichier2 ?>" title="">
<img src="<?php echo $nomFichier ?>" alt="" />
</a>
<?php
}
}
}
closedir($dossier);?>
J'ai pris des codes sur le net en espérant les adapter, mais je m'y perd un peut trop facilement.
Je vous remercie d'avance pour votre aide.
Cordialement
Bonjour, je dois créer une galerie de photo dynamiquement. J'ai au-delà de 250 images à mettre dans la galerie. Ce que je souhaite faire, c'est que mon code php lise le répertoire au complet puis affiche toutes les images. Cependant, je veux éviter que toutes les images se chargent dans une seule page (c'est beaucoup trop lourd).
Jusqu'à présent, j'avais utilisé un script jQuery, qui fonctionnait super bien, mais beaucoup trop long à charger (il charge les 250 grandes images).
J'ai donc décidé d'utiliser une méthode plus conventionnelle et d'y aller avec plusieurs pages.
J'ai cependant beaucoup de difficulté à y arriver.
Voici mon code :
[php]
<?php
//S'il n'y a rien comme valeur de début
if($debut=="")
{
//Début est à 0
$debut=0;
}
// LEs dossiers dans lesquels les images sont"
$folder = "images/thumbs"; // Dossier des thumbnails
$folder2 = "images/background"; // Dossier des grandes images
// Compter
$directory = "images/background/";
if (glob($directory . "*.jpg") != false)
{
$filecount = count(glob($directory . "*.jpg"));
echo $filecount;
}
else
{
echo 0;
}
// Bombre d'image à afficher par page
$nombre = 25;
// ON CREE UN INDEX
$index = $debut * $nombre;
// POUR LES ELEMENTS DU TABLEAU $A COMPRIS ENTRE INDEX ET INDEX +3
$dossier = opendir($folder);
while ($Fichier = readdir($dossier)) {
if ($Fichier != "." && $Fichier != "..") {
//On assigne le chemin complet, les noms de fichiers sont les mêmes dans les 2 répertoire
$nomFichier = $folder."/".$Fichier;
$nomFichier2 = $folder2."/".$Fichier;
//Boucle for pour l'affichage page par page, c'est là que ça bloque je crois.
for ($i = $index; $i < $index + $nombre && $i < $filecount ; $i++)
{
// ON DEFINIT LE NOMBRE
$num = $a[$i];
?>
<a href="<?php echo $nomFichier2 ?>" title="">
<img src="<?php echo $nomFichier ?>" alt="" />
</a>
<?php
}
}
}
closedir($dossier);?>[/php]
J'ai pris des codes sur le net en espérant les adapter, mais je m'y perd un peut trop facilement.
Je vous remercie d'avance pour votre aide.
Cordialement