Visualizzazione risultati 1 fino 5 di 5

Discussione: [php] problemi nell'uso di mkdir()

  1. #1
    Dobrobuz non è connesso Neofita
    Data registrazione
    12-01-2005
    Messaggi
    6

    Predefinito [php] problemi nell'uso di mkdir()

    Ciao a tutti ho pure io lo stesso problema con il comando mkdir

    I valori delle variabili che utilizzo sono i seguenti:
    Codice PHP:
    $path = "./img";
    $pathThumbs = "Thumbs";
    il comando seguente viene utilizzato in un blocco IF

    Codice PHP:
    if(is_dir($path . "/" . $this->pathThumbs) ||
    (!
    is_dir($path . "/" . $this->pathThumbs) && mkdir($path . "/" . $this->pathThumbs, 0755))
    ....
    Qualcuno ha qualche idea del perchè non funziona? Se creo manualmente la cartella va tutto bene, ma ho la necessitò che sia automatizzato.

    Grazie
    Ultima modifica di dreadnaut : 12-10-2008 alle ore 23.24.59 Motivo: + tag [php]

  2. #2
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Codice PHP:
    if(!is_dir($path . "/" . $this->pathThumbs)) {
    mkdir($path . "/" . $this->pathThumbs, 0755);
    }
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  3. #3
    Dobrobuz non è connesso Neofita
    Data registrazione
    12-01-2005
    Messaggi
    6

    Predefinito

    Ciao l'idea era quella di utilizzare uno stesso blocco IF
    per comunicare in caso di errore un unico messaggio.

    Codice PHP:
    if(is_dir($path . "/" . $this->pathThumbs) ||
    (!
    is_dir($path . "/" . $this->pathThumbs) && mkdir($path . "/" . $this->pathThumbs, 0755))
    Credo che il malfunzionamento sia dovuto all'inserimento del comando mkdir all'interno di una condizione if?

    Eventualmente potrei modificare l'intero script e gestire in modo diverso la condizione.
    Consigli?
    Ultima modifica di dreadnaut : 12-10-2008 alle ore 23.16.34 Motivo: + tag [php]

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,260

    Predefinito

    Manca una parentesi in quella riga... e se avessi postato il messaggio di errore sarebbe stato decisamente più facile capire cosa non andava

    Il blocco è però eccessivamente complicato a mio parere, tanto che si fatica a capire cosa tu voglia fare. Direi che attendi una condizione positiva, cioé se la directory esiste, o se sei riuscito a crearla, allora lo script va avanti; altrimenti, messaggio di errore. Quindi:
    Codice PHP:
    $dir = $path . "/" . $this->pathThumbs;

    if (
    is_dir($dir) || mkdir($dir, 0755) ) {
    // la directory c'è, lavoriamoci
    } else {
    // non c'è, o non siamo riusciti a crearla: messaggio di errore
    }
    Tutto qua. Non serve ripetere is_dir() negata, perché se la prima parte di un or ( || ) è vera, la seconda non viene neanche valutata.

    nessun problema in generale ad usare funzione nelle condizioni dell'if, anzi, è un'ottima pratica per rendere il codice più leggibile (senza esagerare però )
    Ultima modifica di dreadnaut : 13-10-2008 alle ore 00.33.42

  5. #5
    Dobrobuz non è connesso Neofita
    Data registrazione
    12-01-2005
    Messaggi
    6

    Predefinito

    Grazie mille,
    direi che come dici tu è molto più leggibile e soprattutto funziona!!

    Alla prossima e buona settimana

Regole di scrittura

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