Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Fografie random che capitano uguali...

    Salve a tutti,

    ho messo un piccolo script nella mia homepage che praticamente và a pescare da una cartella una foto a caso. Fin qui nessun problema.

    Quando poi ho deciso che le foto dovevano essere 2 (una sopra ed una sotto) ho riscontrato prevedibilmente un problema. Essendo lo script pensato per una sola foto non controlla che le due immagini siano differenti ma le mette casualmente ed ogni tanto succede che le due immagini combacino, questo naturalmente non và bene.

    Ecco il codice
    Codice PHP:
    <?
    //*************** Variabili da settare ***************//
    //Percorso relativo della cartella contenente le immagini 
    $cartella="foto/utenti/";
    //Array di tutte le estensioni valide che si vogliono caricare
    $estensioni=array('gif','jpg','png');
    //***************************************************//
    $dir=opendir($cartella) or die("Attenzione, impossibile aprire la cartella ".$cartella);
    $immagini=array();
    $misure=array();
        while(
    false !== ($file=readdir($dir))) { 
            for(
    $i=0;$i<count($estensioni);$i++){
                
    $estensione=substr($file,(strlen($file)-3),strlen($file));
                if(
    in_array($estensione,$estensioni)){
                    
    $immagini[]=$file;
                    
    $misure[]=getimagesize($cartella.$file);
                }
            }
       }
     if(
    count($immagini)==0) die("Si è verificato un problema, le immagini non sono disponibili. Riprovare più tardi.");
     
    $indice=rand(0,(count($immagini)-1));
     print 
    '[url="foto.html"][img]'.$cartella.$immagini[$indice].'[/img][/url]'."
    "
    ;
     print 
    $immagini[$indice];
     
    ?>
    Che funzione devo aggiungere per fargli fare questo check (nella pagina ho poi inserito un'include per 2 volte...

    Grazie a tutti, un saluto,
    Luca

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Una volta che hai il tuo array di foto

    usi shuffle per mischiarle e poi array_slice per estrarre le prime due.

    http://se.php.net/manual/it/function.shuffle.php
    http://se.php.net/manual/it/function.array-slice.php

  3. #3
    Ti ringrazio per la risposta ma non capisco come applicare le due funzioni al codice che già ho...

    scusami ma sono alle primissime armi con il php...

    Ciao e grazie ancora,
    Luca

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    <?php
    $cartella 
    "foto/utenti/";
    $estensioni=array('gif','jpg','png');
    $immagini=array();

    if (
    $handle opendir($cartella)) {
       while (
    false !== ($file readdir($handle))) {
           if (
    $file != '.' && $file != '..' && in_array(array_pop(explode('.',strtolower($file))),$estensioni)) 
               
    $immagini[] = $file;
       }
       
    closedir($handle);


    echo 
    '<pre>';
    shuffle($immagini);
    //print_r($immagini);

    $prime2 array_slice($immagini,0,2);

    echo 
    "<img src=\"$cartella$prime2[0]\" />";
    echo 
    "<img src=\"$cartella$prime2[1]\" />";
    ?>

  5. #5
    Intanto ti ringrazio perchè ora funziona proprio come volevo, l'unica cosa è che a questo punto non riesco più a visualizzare il nome dell'immagine e l'alt (che era sempre il nome dell'immagine).

    Vorre che praticamente inserisse sotto l'immagine il testo descrittivo (che prima lo prendeva in automatico dal nome del file) e che lo impostasse anche nell'alt sempre automaticamente... basta imostare una variabile giusto? Come faccio ad escludere dal nome anche l'estensione? in modo che se un'immagine si chiama pallino.jpg mi visualizzi solo pallino.

    Grazie mille per l'aiuto.

    Un saluto,
    Luca Battistoni

  6. #6
    Altro problema che purtroppo ora riscontro è che le immagini non seguono più le impostazioni del div in cui sono alloggiate... del tipo se gli dò un allineamento a sinistra non lo prendono, non rispettano il padding ecc...

    A che cosa potrebbe essere dovuto visto che con il codice precedente non si verificava questo problema?

    Praticamente non và ad assegnare le dimensioni alle immagini... resta un sacco di spazio vuoto... mentre prima calcolava le dimensioni delle immagini e le assegnava...

    Luca

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    list($width1$height1) = getimagesize($cartella.$prime2[0]);
    list(
    $width2$height2) = getimagesize($cartella.$prime2[1]);
    echo 
    "<img src=\"$cartella$prime2[0]\" style=\"width:".$width1."px; height:".$height1."px;\" alt=\"".substr($prime2[0],0,strrpos($prime2[0], '.'))."\" title=\"".substr($prime2[0],0,strrpos($prime2[0], '.'))."\" />";
    echo 
    "<img src=\"$cartella$prime2[1]\" style=\"width:".$width2."px; height:".$height2."px;\" alt=\"".substr($prime2[1],0,strrpos($prime2[1], '.'))."\" title=\"".substr($prime2[1],0,strrpos($prime2[1], '.'))."\" />"

  8. #8
    Salve a tutti,
    sono nuovo del forum, quindi spero di non fare brutte figure!

    Vorrei prendere l'esempio di sopra e svilupparlo per le mie esigenze.

    Se delle immagini random ne volessi una sola, basta eliminare il secondo comando ECHO.
    Giusto?

    Ma se ogni immagine che mi carica (nella cartella ho 5 immagini gif animate) deve poter avere un collegamento ad una ben precisa pagina??? per ogni gif animata, un link diverso!

    Cosa devo modificare (come per il controllo della dimensione dell'immagine)? :master:

    Vi ringrazio anticipatamente!

  9. #9
    ...per la precisione, per adesso sto utilizzando il seguente codice:

    Codice PHP:
    <?php 
        $folder 
    '.'

        
    $extList = array(); 
        
    $extList['gif'] = 'image/gif'
        
    $extList['jpg'] = 'image/jpeg'
        
    $extList['jpeg'] = 'image/jpeg'
        
    $extList['png'] = 'image/png'

    $img null

    if (
    substr($folder,-1) != '/') { 
        
    $folder $folder.'/'



    if (isset(
    $_GET['img'])) { 
        
    $imageInfo pathinfo($_GET['img']); 
        if ( 
            isset( 
    $extListstrtolower$imageInfo['extension'] ) ] ) && 
            
    file_exists$folder.$imageInfo['basename'] ) 
    ) { 
        
    $img $folder.$imageInfo['basename']; 

    } else { 
        
    $fileList = array(); 
        
    $handle opendir($folder); 
        while ( 
    false !== ( $file readdir($handle) ) ) { 
            
    $file_info pathinfo($file); 
            if ( 
                isset( 
    $extListstrtolower$file_info['extension'] ) ] ) 
    ) { 
                
    $fileList[] = $file
            } 
        } 
        
    closedir($handle); 


        if (
    count($fileList) > 0) { 
            
    $imageNumber time() % count($fileList); 
            
    $img $folder.$fileList[$imageNumber]; 
        } 


    if (
    $img!=null) { 
        
    $imageInfo pathinfo($img); 
        
    $contentType 'Content-type: '.$extList$imageInfo['extension'] ]; 
        
    header ($contentType); 
        
    readfile($img); 
    } else { 
        if ( 
    function_exists('imagecreate') ) { 
            
    header ("Content-type: image/png"); 
            
    $im = @imagecreate (100100
                or die (
    "Cannot initialize new GD image stream"); 
            
    $background_color imagecolorallocate ($im255255255); 
            
    $text_color imagecolorallocate ($im0,0,0); 
            
    imagestring ($im255"IMAGE ERROR"$text_color); 
            
    imagepng ($im); 
            
    imagedestroy($im); 
        } 

    ?>
    Le immagini sono random, funziona tutto.
    Cosa devo modificare, per poter "inserire" un link ben preciso alla sua corrispondente gif animata?

  10. #10
    Una cosa del genere può funzionare per le mie esigenze?

    Codice PHP:
    $array_immagine = array();
    $array_immagine['1.gif'] = 'www.pippo.it/;
    $array_immagine['
    2.jpg'] = 'www.pluto.it/';

    $chiave = array_rand($array_immagine);

    echo $chiave."-".$array_immagine[$chiave]; 

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.