Visualizzazione risultati 1 fino 10 di 10

Discussione: if then else per controllare le estensioni di un file help!!

  1. #1
    L'avatar di RpgWorld
    RpgWorld non è connesso Utente giovane
    Data registrazione
    28-04-2003
    Messaggi
    74

    Predefinito

    Ciao ragazzi ho una domanda da porvi...

    Nel mio DB salvo il nome delle img che inserisco nella mia gallery...Come voi sapete però le librerie GD non gestiscono bene il png e quando mi va a creare automaticamente le thumb me le crea tutte nere...

    Ora io voglio fare in modo che lo script controlli l'estensione del nome del file salvato nel DB e se contiene l'esetensione .PNG non mostri il thumb ma direttamente l'img magari in dimensioni ridotte

    SE "*.PNG NON PRESENTE IN $nomefile" MOSTRA ECO "link thumb_$nomefile" ALTRIMENTI MOSTRA "link $nomefile con dimensioni ridotte"

    Confido nel vostro aiuto grazie mille in anticipo Ciauz

  2. #2
    Guest

    Predefinito

    per la verifica potresti provare con

    [code:1:f1985d26ad]if (strpos($nome_del_file, ".png")===false){
    PARTE DI CODICE PER FILES NON PNG;
    } else {
    PARTE DI CODICE PER FILES PNG;
    }[/code:1:f1985d26ad]

    la funzione strpos cerca la stringa ".png" nella stringa $nome_del_file restituendo un numero intero che rappresenta la posizione della stringa trovata. Se la stringa non viene trovata, invece, la funzione strpos restituisce un false. Per quanto riguarda i due blocchi di codice nella struttura if...else non ho scritto nulla perchè non ho ben capito cosa intendi fare. Spero funzioni, ciauz :o

  3. #3
    L'avatar di RpgWorld
    RpgWorld non è connesso Utente giovane
    Data registrazione
    28-04-2003
    Messaggi
    74

    Predefinito

    Funziona alla grande!! e grazie mille per la spiegazione della stringa!!

    Ho un'altra piccola domandina...

    nell'instruzione IF posso fare in modo che la ricerca non sia CASE SENSITIVE...

    Nel senso posso fare in modo che lo script non faccia distinzione tra PNG png Png etc etc ??...

    Altra piccola cosetta siccome le GD hanno gli stessi problemi anche con il BMP invece che mettere un'altro IF dentro al primo IF posso fare una cosa del genere ".PNG,.BMP" nel senso in una sola istruzione dirgli o png o bmp e naturalmente non case sensitive ??

    Grazie mille ! :D

  4. #4
    Guest

    Predefinito

    Intanto rispondo alla prima domanda. Fra le varie funzioni legate alle stringhe c'è anche la simpatica strstr (nome buffo, vero? :o )

    La funzione strstr($stringa, $da_cercare) va a cercare la stringa $da_cercare dentro a $stringa. A questo punto restituisce:
    1) tutta la parte di $stringa che inizia con $da_cercare fino alla fine della stringa stessa, nel caso di ricerca positiva
    2) valore false se $da_cercare non compare in $stringa.

    Ti faccio un esempio
    strstr("abcdefghi", "cde");
    restituisce
    cdefghi
    Ovvero tutta la parte di stringa che inizia con la sottostringa.

    Perchè dico tutto questo? Perchè esiste anche una variante case-insensitive di strstr, ovvero stristr
    Per fare la verifica di prima puoi quindi usare:
    [code:1:7732761fbb]if (stristr($nome_del_file, ".png")===false){
    PARTE DI CODICE PER FILES NON PNG;
    } else {
    PARTE DI CODICE PER FILES PNG;
    }[/code:1:7732761fbb]

    essendo stristr case-insensitive, il nome del file potrebbe anche essere "file.PnG" che funzionerebbe lo stesso, pur avendo messo ".png" come unico argomento di ricerca.

    Per fare un'unica verifica sia con .png che con .bmp credo dovresti utilizzare le espressioni regolari, ma su questo non ti so aiutare (mai usate in vita mia, anche se prima o poi lo farò di certo) :o
    Non vedo comunque nessuna contrindicazione nell'usare una costruzione un po' più complessa di if che comprenda entrambi i casi. Ovvero:
    [code:1:7732761fbb]
    if(stristr($stringa, ".png")!==false) {
    print("PNG!");
    }
    elseif(stristr($stringa, ".bmp")!==false) {
    print("BMP!");
    }
    else {
    print("altro");
    }
    [/code:1:7732761fbb]

  5. #5
    L'avatar di RpgWorld
    RpgWorld non è connesso Utente giovane
    Data registrazione
    28-04-2003
    Messaggi
    74

    Predefinito

    Di nuovo grazie mille x le preziose informazione :D

    Proverò questo nuovo metodo x risolvere il problema...

    X risponderti...Sai credevo che più condizioni IF si piantano in uno script e più lento sarà il processo...Quindi viste le tante sfaccettature del php volvevo sapere se esisteva un metodo per inserirlo in un solo IF tanto per renderlo più veloce...

    Come lo avevo fatto prima lo script aveva tipo 12 IF (uno per ogni combinazione PNG png Png ihihihihihih) Grazie ancora Ciauz

  6. #6
    Guest

    Predefinito

    Mah... quello dell'ottimizzazione è un discorso complicato, anche se a questi livelli non credo sia un problema così pressante. Ha comunque senso tenere sempre presente il problema, ovviamente. Vorrei però ricordarti che "molte istruzioni" non è per forza sinonimo di "script pesante" dal punto di vista dell'occupazione di risorse durante l'esecuzione. Esistono infatti alcune funzioni (come appunto stristr ) che risparmiano un bel po' di lavoro al programmatore, ma sono certo che il loro impatto sul sistema non sia indifferente. O comunque paragonabile ai tuoi 12 IF, ottenendo alla fine lo stesso risultato :o

  7. #7
    Guest

    Predefinito

    bodo visto che ti ci chiappi col php xchè non mi aiuti sul mio forum?

    senza creare gli script, solo rispondendo a qualche domanda? ^_^ ti va?

    tanto ancora non è molto frequentato eheh

  8. #8
    Guest

    Predefinito

    Io ho circa 10 mila miliardi di interessi, se leggi chi sono dal mio sito lo capirai... oltre al lavoro suono, nuoto, gioco a D&D, cerco di non trascurare la mia ragazza, vado in Vespa 8) e al momento mi diletto un po' col PHP, ma lo faccio solo a livello di hobby. Se avrai bisogno di aiuto chiedi pure, rispondo sempre volentieri (se posso e se sono in grado), ma non mi va di avviare rapporti "fissi". E poi scusa... se sei animato dalla volontà di aiutare il prossimo col PHP, perchè reinventare la ruota? Potresti usare il tuo sito come deposito di news e script ma esercitare il tuo aiuto pratico qui sul forum di Altervista, già avviato e ben frequentato, come tante persone cercano di fare per puro spirito di comunità e, perchè no, curiosità intellettuale :o
    E chissà, forse un giorno questo forum potrebbe diventare un punto di riferimento importante per i programmatori PHP (categoria a cui io non appartengo, anzi io non sono neppure programmatore... nella vita faccio tutt'altro :o )

    PS: Scusate l'OT

  9. #9
    Guest

    Predefinito

    bhè io cerco di portare avanti il mio sito, tramite quello potrò permettere di scaricare script che ho fatto io...lo scopo del mo sito è differente da quello di altervista..che offre un host gratuito..e quindi difficilmente potrà diventare un punto di incontro per programmatori..e comunque il mio sito non è solo per i membri di altervista, ma per chiunque..quindi quelli che non visitano altervista non possono leggere i messaggi che scrivo qua.

    ciauz! ^_^

  10. #10
    Guest

    Predefinito

    Mmm... interessante, sicuramente è molto più flessibile di quella proposta da me :o

Regole di scrittura

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