05 Gennaio 2020 15:22:59 · [Php Random Images Rotator]
Postato da
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!  




Copyright © 2002-2020, Alessandro Marinuzzi