Dzisiaj pokażę wam jak wyświetlić na stronie wszystkie obrazy znajdujące się w folderze. Oczywiście będziemy to robić bez linkowania po kolei każdego zdjęcia. Od razu wyrzucimy wszystkie obrazy z wybranego katalogu.
Żeby nasze zadanie miało sens – z naszych obrazków zrobimy następnie prostą galerię zdjęć! A więc do dzieła!
Co nam będzie potrzebne do zbudowania galerii zdjęć?!
![Jak automatycznie wyświetlić na stronie wszystkie obrazy z folderu? Prosta Galeria w PHP [JS] 2 przykładowa galeria zdjęć](https://i0.wp.com/aurainweb.pl/wp-content/uploads/2019/10/galeria.jpg?resize=790%2C358&ssl=1)
Na pewno będziemy potrzebować jakieś obrazki, z których zbudujemy naszą galerię (ja je umieszczę w folderze images – jednak jeśli nie chcesz wyświetlić grafik z biblioteki to utwórz inny folder). Przyda się też edytor kodu np. Notepad++, Visual Studio Code.
Galeria, którą zbuduje będzie wyposażona w popup dlatego przyda mi się:
https://lokeshdhakar.com/projects/lightbox2/
Interesują nas pliki:
- lightbox.css
- lightbox-plus-jquery.min.js
Dodatkowo skorzystam z biblioteki CSS Bootstrap – konkretnie przyda mi się ich grid.
Struktura strony + skrypty Galerii PHP i JS
Poniżej zamieściłam kod HTML z podłączonymi skryptami potrzebnymi dla stworzenia galerii. Pamiętajcie, że plik trzeba zapisać jako .PHP mimo, że w poniższym kodzie nie ma jeszcze elementów tego typu.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Galery + LIGHTBOX</title>
/* Bootstrap */
<link href="css/bootstrap.min.css" rel="stylesheet">
/* lightbox */
<link href="css/lightbox.min.css" rel="stylesheet">
<script src="js/lightbox-plus-jquery.min.js"></script>
<STYLE>
.example-image-link{ padding: 15PX; }
</STYLE>
</head>
<body>
<div class="image-set container">
/* Kod Galerii */
</div>
</body>
</html>
Nasze skrypty:
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/lightbox.min.css" rel="stylesheet">
<script src="js/lightbox-plus-jquery.min.js"></script>
Skoro mamy już szkielet możemy przystąpić do dalszej pracy.
Wyświetlanie obrazów z folderu z pomocą PHP
Naszą naukę zaczniemy od PHP. Dawno nic na blogu nie pisałam o tym języku a o ironio dosyć często wykorzystuję go w pracy.
Na początek pobierzemy nazwy wszystkich grafik z folderu z zdjęciami:
<?php
/* otwieramy folder z obrazami */
$dirname = "images/";
/* pobieramy nazwy plików z końcówką png,jpeg,jpg,gif */
$images = glob("$dirname*.{png,jpeg,jpg,gif}", GLOB_BRACE);
/* tworzymy pętlę w której wyświetlimy obrazy */
foreach($images as $image) {
/* wyświetlamy jak zwykły obrazek tyle że w miejsce nazwy wpisujemy */ ?>
<img class="example-image img-responsive" src="<?php echo $image; ?>" />
<?php
}
?>
Powyższy kod wyrzuci nam na stronie wszystkie obrazki z folderu images. Tak naprawdę w ten sposób można wyciągnąć całą zawartość folderu na interesuje jednak tylko grafika. W tym pomoże nam właśnie ten fragment.
$images = glob("$dirname*.{png,jpeg,jpg,gif}", GLOB_BRACE);
Jak nietrudno się domyślić pobiera on pliki, które posiadają odpowiednie końcówki. Czyli np. mimo że SVG w teorii jest obrazem 🙂 nie będzie wzięty pod uwagę nawet jeśli jest w folderze.
Teraz początkujący kod i dodamy efekt wyskakującego okienka.
<?php
$dirname = "images/";
$images = glob("$dirname*.{png,jpeg,jpg,gif}", GLOB_BRACE);
foreach($images as $image) {
?>
<a class="example-image-link col-xs-12 col-sm-6 col-md-4" href="<?php echo $image; ?>" data-lightbox="example-set" data-title="">
<img class="example-image img-responsive" src="<?php echo $image; ?>" />
</a>
<?php
}
?>
Jedyne co powyżej dodałam to:
<a class="example-image-link col-xs-12 col-sm-6 col-md-4" href="<?php echo $image; ?>" data-lightbox="example-set" data-title="">
/* obrazek */
</a>
Gotowe dzieło możecie podziwiać Gotowa galeria PHP + lightbox
W branży IT jestem już od 2007 roku. W tym czasie zajmowałam się głównie tematyką pozycjonowania i budowy stron internetowych. Hobbistycznie zajmuje się fotografią, podróżami (głównie tymi mikro). Interesuje się mitologią (Nordycką, Grecką i Rzymską) i historią.