Visualizzare le immagini con PHP
In rete esistono tantissime gallerie fatte in PHP, alcune con codice già pronto per salvare il nome in database.
Qui no voglio spiegare nulla di tutto questo, ma solo come scandagliare una directory alla ricerca delle imagini e visualizzarle automaticamente.
Uno scenario di sempio è questo: stiamo implementando una galleria di immagini, ad esempio in jQuery, e non vogliamo inserire a mano i tag immagini (che magari sono una cinquantina).
Quindi prepariamo tutta la pagina facendo la prova con qualche immagine.
Se tutto funziona sostituiamo, ad esempio, questa roba qua:
<u>
<li><img src="../foto/adv/file1.jpg" alt="" /></li>
<li><img src="../foto/adv/file2.jpg" alt="" /></li>
<li><img src="../foto/adv/file3.jpg" alt="" /></li>
.........
</ul>
con un script PHP in grado di leggere tutte le immagini presenti in maniera automatica.
Nel mio caso tenete anche anche in considerazione che la galleria che uso richiede la presenza di una lista (tag ul e li).
<ul>
<?php
$dirname = "../foto/adv";
$images = scandir($dirname);
sort($images);
foreach ($images as $file) {
if ((substr($file, -5) == ".jpeg") || (substr($file, -4) == ".jpg") || (substr($file, -5) == ".JPEG") || (substr($file, -4) == ".JPG")) {
echo <<<HTML
<li><img src="../foto/adv/$file" alt="" /></li>
HTML;
}
}
?>
</ul>
State attenti a mettere il tag ul fuori dal ciclo while (per tagliare la testa al toro l'ho messo direttamente fuori dai tag php).
Impostiamo la directory ($dirname) e la scandagliamo con scandir ($images).
Poi applichiamo il metodo sort su $images, che altro non fa che ordinare i file nella directory trovati con scandir.
A questo cicliamo con foreach su $images e con il metodo substr cerchiamo solo quelle che terminano con queste estensioni: jpeg, jpg, JPEG e jpg.
Dobbiamo cercare sia le maisucole che le minuscole.
Il metodo substr serve per estrarre parti specifiche da una stringa.
In pratica gli diciamo che solo se i file hanno una di quella 4 estensioni lo visualiziamo.
Per la parte html ho usato un blocco heredoc.
Qua dentro ci si può mettere tutto ciò che si vuole, seguendo però le regole che sono descritte nel link.
Qui dentro ci metto un normale tag li con dentro un tag mg.
A creare quelli che servono ci pensa il ciclo foreach.
Infine due parole sui percorsi delle immagini.
A $dirname gli diamo quello dove sono le immagini.
Al tag img gli diamo lo stesso path più $file che rappresenta la vera e propria immagine e viene preso dal ciclo foreach:
foreach ($images as $file)
Abbastanza semplice direi.
Se usate più estensioni forse vi conviene metterle in un array e poi vedere l'estensione estrapolata è uguale ad un valore di tale array.
php immagini heredoc substr scandir sort
2 Commenti
ciao! si dovrebbe funzionare con tutte le estensioni, a patto che il browser le supporti. sinceramente non conosco l'estensione .fits
23/05/2021Buongiorno, premetto che sono un profano, ma questa procedura per PHP con sente anche di visualizzare immagini *.fits, se le estensioni vengono messe nella riga if ((substr($file, -5) == ".fits") || (substr($file, -4) == ".fit") || (substr($file, -5) == ".FITS") || (substr($file, -4) == ".FIT")) { oppure per questo formato di immagine c'è da considerare altro? Cordiali saluti e grazie
21/05/2021