Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    Undefined offset: 1 su funzione explode

    Ciao a tutti!
    Io ho necessità di pescare un'img JPG random da una cartella per poi visualizzarla.
    Sto usando questa funzione

    Codice PHP:
    function imgRnd($path) { 
        
    //definiamo le estensioni consentite
        
    $estensioni = array('JPG','jpg');
        
    //apriamo la cartella
        
    if(!$cartella = @opendir($path)) { 
            die(
    "Impossibile aprire la directory."); 
        }else{ 
            while((
    $immagine readdir($cartella)) !== false){ 
                if(
    $immagine == "." || $immagine == "..") { 
                    continue; 
                } 
                
    // verifichiamo le estensioni 
                
    list($nome_file$estensione) = explode("."$immagine);
                if(!
    in_array(strtolower($estensione),$estensioni)) { 
                    continue; 
                }else{ 
                    
    // memorizziamo il contenuto della cartella in un array
                    
    $immagini[] = $immagine
                } 
            } 
            
    // mostriamo l'immagine casuale 
            
    $val array_rand($immagini); 
            return 
    $path "/" $immagini[$val]; 
        } 

    Per usarla eseguo un echo sul return della funzione!
    Il problema è che mi genera un errore (anche se poi la funziona funge perchè l'url dell'immagine lo vedo!!!)

    l'errore è questo:

    "Notice: Undefined offset: 1 in C:\xampp\htdocs\mioSito\include\functions.php on line 144
    gallery/foto/Album Di Prova/thumbs//DSC_0014.JPG"

    E viene dato sulla riga:
    Codice PHP:
    list($nome_file$estensione) = explode("."$immagine); 
    (come vedete dopo l'errore l'url dell'immagine c'è e è corretta...non so cosa ci sia che non va :/)

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prima di "list" metti un "var_export($immagine);" per essere sicuro di cosa viene letto...

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    scusa non son molto avvezza xD

    adesso provo!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    l'errore dovrebbe essere dovuto alla mancanza del carattere "." nel nome del file che tu non controlli, ma di cui presupponi l'esistenza (ci sono file senza "." nella cartella?), insomma dovresti aggiungere un controllo:

    Codice PHP:
    ...
    if (
    strpos($immagine'.')>0) {
     list(
    $nome_file$estensione) = explode("."$immagine); 
                if(!
    in_array(strtolower($estensione),$estensioni)) {  
                    continue;  
                }else{  
                    
    // memorizziamo il contenuto della cartella in un array 
                    
    $immagini[] = $immagine;  
                }  
    };
    ... 
    e magari anche controllare che vi sia almeno un'immagine...

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Facendo come mi hai detto tu mi da questo errore:

    'Foto1.JPG''Foto2.jpg''Foto.jpg''_notes'
    Notice: Undefined offset: 1 in C:\xampp\htdocs\paolorocca\include\functions.php on line 145
    gallery/foto/Album Di Prova/thumbs//Foto2.JPG


    e infatti togliendo la cartella "_notes" funziona tutto xD

    Quella cartella me la genera dreamweaver odiosamente in automatico!
    Comunque ora la tolgo e aggiungo un if(is_dir()) allo scritp per esser tranquilla!

    Grazie 1000 per il consiglio!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ti direi di aggiungere il controllo che dicevo (della presenza del carattere ".") e ANCHE !is_dir(...) come già pensavi

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.