Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    selezionare immagini random da una cartella e mostrarle

    Salve a tutti
    dovrei mostrare delle offerte in una pagina di un hotel.
    Attualmente mostro solo testo ma vorrei mostrare anche una immagine della localit� per ogni offerta in modo da "abbellire" la pagina
    Per non modificare interamente lo script di inserimento, modifica e visualizzazione delle offerte, vorrei poter inserire una 20ina di fotografie in una cartella e mostrarle in modo random per ogni offerta, magari senza mai ripetere la stessa foto.

    Sapete come potrei fare?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Per la radomizzazione basterebbe mettere in un array i nomi delle immagini, fare uno shuffle() e prendere la prima.
    Questo non ti assicura che vengano mostrate tutte le immagini prima di ripeterne una già vista.
    Per avere "ciclicità", da qualche parte devi salvarti quali immagini sono state mostrate, prenderne una a caso, magari con lo stesso sistema dello shuffle(), ma prima di mostrarla verifichi se è nell'elenco di quelle mostrate, se è stata mostrata, o rifai lo shuffle, oppure prendi la successiva nell'array e ricontrolli.
    Una volta che sono state mostrate tutte azzeri l'elenco.

    Se invece non ti interessa che l'ordine col quale vengono prese sia sempre lo stesso:
    - nel db metti un contatore che parte da 0
    - crei l'array con le immagini e prendi quella all'indice che dice il db
    - incrementi di 1 il contatore nel db, così la prossima volta prendi la successiva
    - sapendo quante sono le immagini in totale puoi resettare il contatore quando le hai visualizzate tutte
    Ultima modifica di Alhazred; 30-05-2017 a 13:11

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Ciao e grazie per la risposta
    non vorrei mettere mano al database perche' a quel punto farei prima andare a modificare lo script di inserimento, modifica e visualizzazione.

    Vorrei solo poter "leggere il contenuto della cartella" e tirare fuori le immagini.
    Il modo random puo' anche essere scartato, tanto se aggiungo 30 foto ed ho 8 offerte, raramente uscirà sempre la stessa immagine.

    Ho provato anche questo metodo ma non mi funziona (o richiamo io male l'immagine)
    https://www.mrwebmaster.it/php/immag...lla_11320.html

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Che vuol dire che non ti funziona? Cosa fa? Ti da errore o cosa?

    Comunque è più o meno quello che ti ho detto di fare con lo shuffle().

    Volendo il contatore lo puoi anche scrivere in un file di testo se non vuoi toccare il db.

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    In pratica non mi esce niente, pagina bianca
    Io sto usando proprio quelle righe di codice, ho sostituito la variabile $cartella con "foto_offerte" che è la directory dove ho inserito quelle foto
    Anche $immagine_casuale l'ho modificata togliendo "fotografie" e mettendo "foto_offerte" ma niente

    Codice PHP:
    $cartella="foto_offerte";
    function 
    immagine_random($cartella) {
        
    $img glob($cartella '*.{jpg,jpeg,png,gif}'GLOB_BRACE);
        
    shuffle($img);
        return 
    basename(array_pop($img));
        
    }
    $immagine_casuale immagine_random('foto_offerte');
    ?>
    Dove sbaglio? 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.