Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Image random PHP

  1. #1

    Image random PHP

    Ciao a tutti, io di solito uso questo script per stampare a video un'immagine diversa ogni volta che si carica la pagina

    Codice PHP:
    // Imposto il num. totale di immagini nella cartella 
    $total "5";  
    //Imposto il tipo di file 
    $file_type ".png";  
    // Imposto il percorso della cartella con le immagini 
    $image_folder "http://www.miosito.net/images/random";  
    //Imposto la prima immagine 
    $start "1";  
    $random mt_rand($start$total); 
    $image_name $random $file_type
     
    //Dico al PHP cosa stamparmi a video 
    echo "<img src=\"$image_folder/$image_name\"  />"
    Quello che dovrei fare però e stampare a video (sempre a random) più di una immagine dalla stessa cartella, usando questo scrpt rischio che vengano stampate a video le stesse immagini.
    Per spiegarmi meglio:
    data una cartella con 100 immagini devo stampare a video 4 immagini diverse tra loro e diverse ogni volta che si carica la pagina.

    Grazie per l'eventuale aiuto

  2. #2
    potresti inserire un ciclo FOR per scegliere le quattro immagini random iniziali; poi le memorizzi in un db o in un cookie o in una variabile session; la prossima volta che ricarichi la pagina prelevi il cookie (o session o db) e generi di nuovo le quattro immagini: se una di esse è uguale a quelle rpecedenti allora rifai il ciclo FOR.

  3. #3
    Bhe, grazie mille per la risposta a tempo di record.
    Diciamo che a me primariamente interessa che nella pagina, una volta caricata, non ci siano immagini uguali tra di loro poi se ad una successiva visualizzazione della pagina alcune immagini sono uguali a quelle della visualizzazione precedente è un problema relativo (anche perchè comunque nalla cartella da cui pesco le immagini ci saranno in realtà una quindicina di foto, quindi prima o poi...).

    Comunque se ho capito bene per il primo punto mi basta utilizzare un ciclo for?

    Grazie mille.

  4. #4
    oppure potresti usare un array, inserire come chiavi gli id delle foto e come valori i link, dopo fai un rand e ti estrai la chiave dell'array, la stampi e la togli dall'array

  5. #5
    Originariamente inviato da maurelio79
    Bhe, grazie mille per la risposta a tempo di record.
    Diciamo che a me primariamente interessa che nella pagina, una volta caricata, non ci siano immagini uguali tra di loro poi se ad una successiva visualizzazione della pagina alcune immagini sono uguali a quelle della visualizzazione precedente è un problema relativo (anche perchè comunque nalla cartella da cui pesco le immagini ci saranno in realtà una quindicina di foto, quindi prima o poi...).

    Comunque se ho capito bene per il primo punto mi basta utilizzare un ciclo for?

    Grazie mille.
    allora sì, diri che il ciclo for basta e avanza!

  6. #6
    C'è qualcosa che non mi torna.

    Se al codice di prima aggiungo il ciclo for

    Codice PHP:
    for ($random=0;$random<5;$random++) 
    Ovviamente a video mi stampa tutte le immagini presenti nella cartella, io dovrei fare in modo che ne stampi solo alcune, cosa devo aggiungere?

    Per quanto riguarda l'array dovrei informarmi (non sono ancora pratico), è possibile farlo con solo un ciclo for?

  7. #7
    potresti prima di questo ciclo FOR fare un altro icclo per inserire le immagini nella cartella in un array; poi nel ciclo FOR ad ogni "passata" scegli un numero casuale dell'array così visualzizi una immagine davvero casuale

  8. #8
    Ok, ci sono quasi..
    Come faccio ad indicare al ciclo for di esrtarre dei numeri casuali dall'array?

  9. #9
    Codice PHP:
    // images è l'array con i nomi delle immagini
    for ($i=0$i<count($images); $i++) {
       
    //inizializza il generatore casuale di numeri
       
    srand();
       
    // seleziona un numero a caso fra 0 e l'indice massimo di $images
       
    $rand rand(0count($images));
      
    // visualizza l'immagine casuale
      
    echo "<img src=\"".$images[$rand]."\" />";


  10. #10
    Grande, grazie mille. Così ho anche iniziato a capire meglio il senso degli array.

    Molte grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.