Ieri ho deciso di migliorare un mio script Php che avevo realizzato (tempo fa) per far caricare al Php una immagine casuale partendo dalle mie cartelle immagini ubicate nella root del mio sito web. Cosa fa lo script? Carica tutte le immagini che trova dentro la cartella specificata e ne tira fuori una a caso e la memorizza in una variabile da poter poi utilizzare a proprio piacimento... così se avete una galleria fotografica e volete mostrare una fotografia a caso, questo script fa al caso vostro! Come procedere? Io ho fatto così, ho creato due cartelle:
xmas e
pic. Perché ho fatto in questo modo? Semplice! Ho previsto la cartella
xmas (
christmas abbreviato diventa
xmas)
perché volevo che a Dicembre venissero mostrate tutte le immagini del Natale. Ho previsto anche una cartella
pic che serve a mostrare tutte le immagini quotidiane. Ho messo ambedue le cartelle nella radice del mio sito web e ho rinominato tutte le immagini in
001.jpg,
002.jpg,
003.jpg fino a
310.jpg. Ho fatto la stessa cosa ad entrambe le cartelle, questo facilita il funzionamento del mio script. Adesso copiate lo script Php che segue e salvatelo come
rotate.php e mettetelo dentro la cartella
php che creerete nella root del vostro sito web:
<?php
##########################################################
# Simple Script Random Images Rotator • 1.4 • 04.01.2020
#
# Alessandro Marinuzzi [alecos] • https://www.alecos.it/ #
##########################################################
function rotate($folder) {
if ((file_exists($_SERVER['DOCUMENT_ROOT'] . "/$folder")) && (is_dir($_SERVER['DOCUMENT_ROOT'] . "/$folder"))) {
$list = scandir($_SERVER['DOCUMENT_ROOT'] . "/$folder");
$fileList = array();
$img = '';
foreach ($list as $file) {
if
((file_exists($_SERVER['DOCUMENT_ROOT'] . "/$folder/$file")) && (is_file($_SERVER['DOCUMENT_ROOT'] . "/$folder/$file"))) {
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if ($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png') {
$fileList[] = $file;
}
}
}
if
(count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder . '/' . $fileList[$imageNumber];
}
return $img;
} else {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/$folder", 0755, true);
}
}
$my_gallery_month = date('m');
$my_folder_default = 'pic';
$my_folder_holiday = 'xmas';
if ($my_gallery_month == 12) {
$my_gallery
= rotate($my_folder_holiday);
} else {
$my_gallery = rotate($my_folder_default);
}
?>
Bene! Adesso che lo script Php è stato svelato passiamo al lato pratico, nella radice del vostro sito web avrete sicuramente dei file php, basta fare una semplice modifica per far apparire la galleria casuale dove progettato, dunque inserite dove vi fa più comodo la seguente linea di codice:
<a href="/<?php include("php/rotate.php"); echo $my_gallery; ?>"><img src="/<?php echo $my_gallery; ?>" alt="Random Gallery" width="90" height="67"></a>
Naturalmente se avete
uno script Php che può rilavorare le miniature al volo è meglio perché il browser non è costretto così a caricare una immagine enorme per poi ridimensionarla al volo, meglio che lo faccia il Php, salvando così un po' di traffico e risparmiando un lungo caricamento ai vostri visitatori. Bene! Lavoro terminato!
Spero vi sia piaciuta questa pillola di Php! Alla prossima!