Visualizzazione risultati 1 fino 14 di 14

Discussione: Tasto random per immagini

  1. #1
    Guest

    Predefinito Tasto random per immagini

    Salve a tutti, chiedo scusa se l'argomento è stato già trattato, ma non ho trovato nulla che facesse a caso mio:
    avrei bisogno di uno script per un tasto che mi permetta di caricare le immagini da una cartella sul web.

    al momento ho ovviato tirando un numero random tra quelli disponibili, ma ovviamente è una soluzione mooolto provvisoria e mi piacerebbe creare un'array
    Codice:
    if ($this->tmpl['detailbuttons'] == 1){
    	echo '<tr>'
    	.'<td align="right" width="50%" style="padding-left:0px">'.$this->item->prevbutton.'</td>'
    	.'<td align="center" width="20px" style="padding-left:0px"><a href="http://forum.it.altervista.org/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/.../'.rand(7, 16).'"><img src="http://forum.it.altervista.org/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/.../icon-rand.png"/></a></td>'
    	. $closeButton
    	.'<td align="left" width="50%" style="padding-right:0px">'.$this->item->nextbutton.'</td>'
    	.'</tr>';
    }
    questo in grassetto è il tasto che vorrei modificare, avete qualche suggerimento? :)
    Ultima modifica di alemoppo : 15-01-2012 alle ore 15.06.59 Motivo: +tag [code]

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Guarda questo mio vecchio codice, forse può esserti d'aiuto Immagini Random da una cartella con PHP.
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    ciao miki,

    questo è il tuo script:
    Codice PHP:
    <?php

    $dir
    = "immagini"; // Senza slash finale

    $img = array();
    $img = glob($dir."/*");

    $con = count($img)-1;
    $ran = rand(0,$con);

    echo
    "<img src=\"".$img[$ran]."\" alt=\"\" />";

    ?>
    a me non serve l'src ma l'href funziona lo stesso ".$img[$ran]." ?
    per il resto devo solo impostare la dir della cartella giusto?

    grazie mille!
    Ultima modifica di alemoppo : 15-01-2012 alle ore 15.07.21 Motivo: +tag [php]

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Esatto.
    $img[$ran] contiene il percorso dell'immagine estratta casualmente pertanto puoi inserire questa variabile dove più preferisci.

    Nel tuo caso dovrebbe essere così:

    Codice PHP:
    if ($this->tmpl['detailbuttons'] == 1){
    echo
    '<tr>'
    .'<td align="right" width="50%" style="padding-left:0px">'.$this->item->prevbutton.'</td>'
    .'<td align="center" width="20px" style="padding-left:0px"><a href="'.$img[$ran].'"><img src="http://forum.it.altervista.org/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/.../icon-rand.png"/></a></td>'
    . $closeButton
    .'<td align="left" width="50%" style="padding-right:0px">'.$this->item->nextbutton.'</td>'
    .'</tr>';
    }
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    Codice PHP:
    $dir = "www.sito.it/images";

    $img = array();
    $img = glob($dir."/*");

    $con = count($img)-1;
    $ran = rand(0,$con);

    if (
    $this->tmpl['detailbuttons'] == 1){
    echo
    '<tr>'
    .'<td align="right" width="50%" style="padding-left:0px">'.$this->item->prevbutton.'</td>'
    .'<td align="center" width="20px" style="padding-left:0px"><a href="'.$img[$ran].'"><img src=".../images/icon-rand.png"/></a></td>'
    . $closeButton
    .'<td align="left" width="50%" style="padding-right:0px">'.$this->item->nextbutton.'</td>'
    .'</tr>';
    }
    questo è il codice che ho provato ad installare seguendo il tuo prezioso consiglio, ma ahimè non funziona, così facendo mi riporta dritto alla home :(

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Non puoi utilizzare questa variabile:

    Codice PHP:
    $dir = "www.sito.it/images";
    Perchè PHP non può leggere i files da una cartella di un sito altrimenti tutti potrebbero tutto. Devi modificare in questo modo:

    Codice PHP:
    $dir = "images";
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Guest

    Predefinito

    grazie mille miki, mi hai risolto un enorme problema!!! funziona benone, devo solo scrivere una regola per far aprire solo un determinato tipo di immagini, vedo cosa trovo in giro :P


    edit: ho riscontrato un piccolo problemino perchè le immagini sono in una cartella diversa dall'url da cui devono essere visualizzate, c'è un modo per rimuovere "images" (la cartella dove effettivamente sono le immagini) dall'url che va a stampare?
    Ultima modifica di corcione : 15-01-2012 alle ore 20.21.58

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da corcione Visualizza messaggio
    devo solo scrivere una regola per far aprire solo un determinato tipo di immagini
    Basta sostituire questa riga:

    Codice PHP:
    $img = glob($dir."/*");
    Con

    Codice PHP:
    $img = glob($dir."/*.estensione");
    Dove "estensione" è l'estensione delle immagini da prelevare.


    Citazione Originalmente inviato da corcione Visualizza messaggio
    edit: ho riscontrato un piccolo problemino perchè le immagini sono in una cartella diversa dall'url da cui devono essere visualizzate, c'è un modo per rimuovere "images" (la cartella dove effettivamente sono le immagini) dall'url che va a stampare?
    Puoi usare la funzione basename() che ti restituisce solo il nome dell'immagine senza il percorso e poi specificare tu il link.

    Esempio:

    Codice PHP:
    /* codice */

    .'<td align="center" width="20px" style="padding-left:0px"><a href="http://miosito.altervista.org/quello_che_voglio/'.basename($img[$ran]).'"><img src="http://forum.it.altervista.org/php-mysql-e-apache-htaccess/php-mysql-e-apache-htaccess/.../images/icon-rand.png"/></a></td>'

    /* codice */
    Così facendo visualizzeremo ad esempio

    http:// miosito.altervista.org/quello_che_voglio/immagine.gif

    Al posto di

    http:// miosito.altervista.org/images/immagine.gif
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Guest

    Predefinito

    sto diventando il tuo incubo caro miki :(

    man mano che mi risolvi i problemi ne appaiono di nuovi... il bello del php visto da un neofita!

    adesso mi trovo con questo problema:

    la mia riga:
    Codice PHP:
    <a href="gallery/'.basename($img[$ran]).'">
    si trasforma nell'url: www.miosito.it/gallery/nomeimg.formato

    e sarebbe perfetto se solo non visualizzasse il formato, e mi desse l'id dell'immagine.
    L'url che vorrei ottenere è: www.miosito.it/gallery/id-nomeimg

    ho provato con:
    Codice PHP:
    <a href="gallery/'.$this->item->id.'-'.basename($img[$ran]).'">
    ma da inesperto quale sono, l'id che vado a pescare è quello dell'immagine, che al momento della generazione del tasto random, sto visualizzando, quindi errato :(

    in più, ho notato che è sufficiente ottenre l'id delle immagini dalla cartella, in modo random per adempire al mio scopo ottenendo un url valido, quindi potrei omettere il nomefile...

    prometto che ti dedicherò una statua (o una foto nella galleria! :P)
    Ultima modifica di corcione : 16-01-2012 alle ore 02.43.51

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ehm. Onestamente non ho capito bene ciò che vuoi...o forse non ho capito bene...potresti spiegarti con un esempio pratico?

    Poi gli ID dove li va a pescare PHP?

    Infine: non c'è problema. Siamo in un forum pubblico dove chiunque può aiutare o richiedere aiuto e se io non ti volevo aiutare potevo benissimo non farlo. Se ti aiuto ci sarà un motivo (sono fatto così...non pensare che mi paghino - il ritardo delle mie risposte è dovuto al mio lavoro).
    Ultima modifica di miki92 : 16-01-2012 alle ore 21.16.36
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Guest

    Predefinito

    l'id lo pesca dal database sql dove sono catalogate le immagini, un esempio pratico:

    www-miosito.it/galleria/immagini/2-pinguino

    questo url apre l'immagine "pinguino.jpg" (è un esempio) dove 2 è l'id univoco per la foto.
    L'url è valido anche se vado su:

    www-miosito.it/galleria/immagini/2

    Lo script tuo mi crea l'url:

    www-miosito.it/galleria/immagini/pinguino.jpg
    che aihmè non è valida perchè ha l'estensione e non ha l'id...

    c'è un modo per ottenere random un id delle foto, piùttosto che i nomi delle immagini?

    (grazie ancora per il tuo aiuto!!!)

  12. #12
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Si. Basta che al posto di $img[$ran] usi semplicemente $ran. Solo che poi l'ID non è univoco, cioè un immagine potrebbe avere un ID diverso al refresh della pagina.

    Comunque se le immagini sono memorizzate nel database (o almeno catalogate) è più facile fare il tutto. Dimmi te come proseguire.
    Apprezzi l'aiuto? Offrimi un caffè!

  13. #13
    Guest

    Predefinito

    ok, ho modificato utilizzando semplicemente $ran e funziona, l'unico errore è che mi stampa id a caso, (per esempio anche gli id delle foto eliminate) e non solo quelli presenti nella cartella, c'è una funzione anche per questo? :P

  14. #14
    Guest

    Predefinito

    piccolo up, non voglio stressare un unico utente!!! :P

    la domanda è questa:
    come faccio a far stampare l'id delle sole immagini presenti nella cartella?
    ora come ora è questo il codice:

    <a href="gallery/'.$this->item->id.'-'.basename($ran).'">

    ma mi pesca gli id anche delle immagini deletate :(

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •