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

    Problema con le directory

    Ciao ragazzi ho crato questo sorgente che dovrebbe crearmi la seguente struttura :

    |-> CARTELLA 1
    |'-> CARTELLA 1.1
    |'-> CARTELLA 1.2
    |'-> CARTELLA 1.3
    |-> CARTELLA 2
    |'-> CARTELLA 2.1
    |'-> CARTELLA 2.2
    |-> CARTELLA 3
    |-> CARTELLA 4
    |'-> CARTELLA 4.1

    Se esisto dei file non li tengo in cosiderazione adoperando la funzione is_dir($file).

    Il problema che anke se il codice SEMBRA GIUSTO non ottengo il risultato su indicato
    Infatti nelle cartelle di livello 1 (CARTELLA 1, CARTELLA 2, CARTELLA 3, CARTELLA 4) vengono visualizzate tutte le cartelle, ma nelle cartelle di livello 2 (CARTELLA 1.1, CARTELLA 1.2, CARTELLA 1.3, CARTELLA 2.1,..............,CARTELLA 4.1) non vengono visualizzate tutte le cartelle ma solo alcune (SENZA CRITERIO), non riesco a capire xkè non vengano visualizzate tutte le subcartelle.
    Vi allego il sorgente

    <html>
    <head>
    <title>Elenco cartelle e sottocartelle</title>
    </head>
    <body>
    <select name="cartella">
    <?php
    if($handle=opendir('.')){
    while(false!=($file=readdir($handle))){
    if($file!="." && $file!=".." && is_dir($file)){
    echo"<option value=\"$file\">|-> $file</option>\n";
    $handle2=opendir($file);
    while(false!==($files=readdir($handle2))){
    if($files!="." && $files!=".." && is_dir($files))
    echo"<option value=\"$file\\$files\">|'->$files</option>\n";
    }
    closedir($handle2);
    }
    }
    closedir($handle);
    }
    ?>
    </select>
    </body>
    </html>

    Cmq penso che non vengono visualizzate le cartelle di livello 2 xkè il secondo ciclo while viene eseguito una sola volta e se (TRAMITE IL FILE SYSTEM) viene riconosciuto un file viene terminato il ciclo tornando ad eseguire il ciclo 1 altrimenti se viene riconosciuta una cartella la visualizza.

    Non so cos'altro pensare ho guardato il sorgente + volte ma appunto semra giusto.
    Spero che possiate aiutarmi.
    Grazie ciao...

  2. #2
    ciao
    ti sarebbe molto utile la funzione scandir

    http://it2.php.net/manual/it/function.scandir.php

    ciao

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Ti linko un post in cui ho scritto due funzioni per un'altro utente...potrebbero tornarti utilissime se opportunamente modificate:

    http://forum.html.it/forum/showthrea...68#post9427568


  4. #4
    Grazie ad entrambi cmq spero non ci sia bisogno di altro aiuto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    ciao cmq se ti puo' interessare il problema sta qua'

    && is_dir($files)

    se lo togli funge tutto ma ti prende anche i file

    sostanzialmente la prima volta funge la seconda no

    mistero
    almeno io non l'ho capita

    forse e' meglio seguire i consigli dati





  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    ho notato anche un'altra cosa
    vediamo se me la confermi
    se fai un dir da dos dovresti notare che lui prende le sottodir solo se prima di esse c'e' un file
    ora mi spiego
    dir 1
    sasa.txt
    fifi <DIR>
    sasa <DIR>

    dir 2

    fifi <dir>
    sasa <dir>
    sasa.txt


    dir 1 ha un file prima delle cartelle quindi lui vede le sottocartelle
    dir 2 non ha file prima delle cartelle e quindi non viene visto

    su 6 cartelle mi ha risposto cosi'
    non credo sia un caso
    e' il xche' che e' oscuro
    sembrerebbe che appena trova un file procede alla ricerca del resto altrimenti se la prima corrispondenza e' una dir lui salta tutto il ciclo
    sempre piu' oscuro per me VVoVe: :master:

    ciao

  7. #7
    Ciao awialex bhe non è proprio come dici tu xkè se ordino la cartella le cartelle vengono messe prima dei file, ma lo script kontinua a non funzionare.
    Penso appunto che il problema derivi dal file system da da qualke kosa di grosso, kome hai potuto notare la kosa è molto strana, sintattikamente il sorgente è giusto.
    Forse quake BUG ma nn voglio allargarmi troppo cmq sta di fatto ke il mio prog nn funziona.
    Cmq ora sto provando le altre soluzioni, xkè non posso assolutamente visualizzare i fili, ma solo le cartelle.
    Cmq se hai scoperto niente fammi sapere, sto lavorando alla mia tesina x il quinto anno e questo è l'ultimo script (ke porka miseria non mi deve funzionare).

    Programmatori di php unitevi x aiutarci a kapire questo enigma assurdo...

    Ciao... VVoVe: VVoVe:

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    Originariamente inviato da fabjo85
    Ciao awialex bhe non è proprio come dici tu xkè se ordino la cartella le cartelle vengono messe prima dei file, ma lo script kontinua a non funzionare.
    ciao
    infatti io non parlo di metterle in ordine da win
    devi entrare nel prompt dei comandi DOS vai nella cartella incriminata e fai dir
    vedi cosa ne viene fuori

    il vecchio dir non ordina le cartelle e se ne controlli ++ di 1 ti accorgerai che i file sono in ordine di creazione o di qlc altro non so
    ma sono disposti diversamente da come li propone win

    forse c'entra il file system di win che crea problemi al comando php non so che pensare
    anche xche' sulla cartella di partenza (qlc essa sia) l'albero principale funge sempre ma appena entra nelle cartelle succede il casino


    cmq visto che si tratta di una tesina ti conviene trovare strade alternative
    altrimenti rischi di arrivare li e non funge niente
    VVoVe: VVoVe: VVoVe:
    sai che sfiga




  9. #9
    Grazie awialex ho fatto kome hai detto tu ho kontrollato tramite dos le cartelle in cui risiede lo script cmq non segue il tuo procedimento (ho provato kn 10 cartelle e relative sottocartelle) cmq sn sicuro ke è il file stystem (IL MISTERO SI INFITTISCE SEMPRE DI +) nn ho mai visto in programmazione niente di kosi strano (è programmo da 5 anni).
    Cmq penso di kambiare strada.
    Ad ogni modo se qualkuno scopre il motivo me lo faccia sapere sono diventato troppo curioso.
    Voglio kapire il xkè...

    :master:

    Ciao...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    ho provato anche a prenderlo in giro cosi'

    if($file2!="." && $file2!=".."){

    if(is_file($file2)){

    } else {
    echo"<option value=\"$file\\$file2\">| '->$file2</option>\n";
    }
    }

    niente stesso risultato
    anche mettendo
    clearstatcache()
    il risultato non cambia
    l'unico modo per farlo fungere sembra essere il metodo proposto prima
    ma ti da anche i file
    sorry

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.