PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

nIQnutn : Galerie d'images: afficher une image contenu dans un zip sur votre site

mardi 19 avril 2016 à 22:18

J'ai précédemment expliqué comment Afficher aléatoirement une citation sur votre site et cela marche également parfaitement avec des images.
Je propose un autre petit script, assez similaire mais qui servira à afficher des images à partir d'une archive .zip.

J'ai effectué plusieurs modifications pour aller un peu plus loin et être capable d'afficher un plus grand nombre d'images ( >1000 fichiers). L'objectif principal restait toujours de se simplifier la tâche:

Il suffit de recopier le code PHP ci-dessous en modifiant le nom de l'archive et l'URL de la galerie.

galerie.php
> URL du fichier zip
$urlPage="galerie.php"; // A MODIFIER >> URL de la page

// navigation
$start= 0 ; // index de départ 
$end= getNbImages($file)-1 ; // index de fin

$urlVar=preg_replace('/(^.*?)\\?/', '', $urlPage."?id") ; //  variable à récupérer
$urlGet=$urlPage."?id"; // URL pour la navigation
$id = isset($_GET[$urlVar])?intval($_GET[$urlVar]):intval(mt_rand($start, $end)); // on récupère l'ID 

// Afficher l'image X
$image=getImageX($file, $id);
echo '
'.$image.'
'; // A MODIFIER >> Mise en page de l'image // Fonction pour retourner l'image correspondant à l'ID function getImageX ($zipFile, $id) { $zip = new ZipArchive; $res = $zip->open($zipFile); if ($res === TRUE) { $src = $zip->getFromIndex($id); $result = 'Image'; return $result; } else { echo 'échec, code:' . $res; } $zip->close(); } // Fonction pour retourner le nombre d'images contenu dans l'archive function getNbImages ($zipFile) { $date_file=filemtime($zipFile); $file_cache=$zipFile.'.cache'; $date_cache=filemtime($file_cache); if ( (file_exists($file_cache)) && ($date_file <= $date_cache) ) { $nb_items_cache = file_get_contents( $file_cache ); } else { $zip = new ZipArchive; $res = $zip->open($zipFile); if ($res === TRUE) { $nb_items_cache=$zip->numFiles; } $zip->close(); file_put_contents($file_cache, $nb_items_cache); } return $nb_items_cache; } ?>

Les variables à modifier:

Puis de l'envoyer sur votre serveur avec l'archive contenant vos images.
En recopiant correctement le code correctement, vous devriez afficher une galerie avec des boutons de navigation.

Le fichier .zip contenant l'ensemble des images ne doit pas comporter d'autres types de fichiers ou de dossiers.

Je n'ai pas de recul concernant les performances de ce script, donc à utiliser avec modération. Avec un fichier comportant plusieurs centaines d'images, cela ne semble pas poser de difficultés.

Ressources


2016 nIQnutn CC-BY

Gravatar de nIQnutn
Original post of nIQnutn.Votez pour ce billet sur Planet Libre.