Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    creare sottocartelle e posizionare un file

    salve,
    dato un id (per esempio 3484), io dovrei creare se non esistono, delle sottocartelle per ogni cifra dell'id.
    successivamente nella cartella più interna devo inserirci un file.

    Esempio pratico:

    id = 3484

    1. creo la cartella 3 (prima cifra dell'id)
    2. creo la cartella 4 (seconda cifra dell'id) e la metto nella cartella 3 precedentemente creata
    3. creo la cartella 8 (terza cifra dell'id) e la metto nel path /3/4 precedentemente creati
    4. creo la cartella 4 (quarta cifra dell'id) e la metto nel path /3/4/8 precedentemente creati
    5. inserisco il file nel path /3/4/8/4 percorso precedentemente creato

    Ovviamente le se cartelle già esistono devono restare invariate con il loro contenuto, non devono essere né cancellate né ricreate.

    Come posso fare?

    grazie.

  2. #2
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    fai un ciclo per ogni carattere stringa che compone l'id e poi crei le relative cartelle. se ci sono già => non fa nulla.

  3. #3
    il concetto lo conosco, sto cercando un po' di informazioni. quali funzioni mi suggeriresti per fare tutto ciò?
    grazie

  4. #4
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    http://php.net/manual/en/function.mkdir.php > Guarda il 3° parametro.
    http://php.net/manual/en/function.str-split.php > Con str_split puoi ricavarti le singole cifre dell'id.

    Ora vai e conquista il mondo. Chiedi se riscontri delle difficoltà.

  5. #5
    grazie kurt. ci provo e vi faccio sapere

  6. #6
    ok. ho fatto questa:
    codice:
     
    $id = 12345678;
    $array_id = str_split($id);
    $lunghezza_array = count($array_id);
    $percorso_iniziale = '../prova/';
    for($i=0;$i<$lunghezza_array;$i++) {
     if (!file_exists($percorso_iniziale . $array_id[$i])) {
      mkdir($percorso_iniziale . $array_id[$i]);
      }
      $percorso_iniziale .= $array_id[$i] .'/';
     }
    secondo voi può andar bene o si può migliorare?

  7. #7
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Guarda il 3° parametro.
    Non l'hai letto?

  8. #8
    si il recursive?
    l'ho letto ma non ho capito.

  9. #9
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Allows the creation of nested directories specified in the pathname.
    Tradotto: permette la creazione di cartelle nidificate nel percorso specificato.

    Io lo farei così:
    codice:
    $id = 12345678;
    $digits = str_split($id);
    $dir = '/baseDir/' . implode('/', $digits);
    
    
    if (!is_dir($dir)) {
        mkdir($dir, 0777, true);
    }
    
    
    echo "La cartella ", $dir, " ora esiste.";

  10. #10
    ok, grazie mille Kurt... problema risolto!

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.