Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: elencare sottocartelle

  1. #1

    elencare sottocartelle

    ho provato a cercare ma senza results

    ho la necessità di uno script che elenchi tutte le eventuali sottocartelle presenti in una cartella tralasciando eventuali files.

    per elencare i files non ho problemi ma se pongo la condizione
    is_dir mi fa vedere solo il "." cioè se stessa e non le sottocartelle. (che ci sono :rollo: )

    ecco lo script:
    while (false !== ($file = readdir($handle))) {

    //if ($file != "." && $file != ".." && $file !="Thumbs.db")
    if ( $file != ".." && $file != "Thumbs.db" ) {
    $c=is_dir($file);
    if ($c){echo $file;}


    //echo"<td width='100' height='100'><a href=\"javascript:PopupPic('$cart$file')\">[img]$im[/img]</td> ";

    $i++ ;
    }
    if (is_int($i/11)){echo "</tr>";}
    }



    ma come si fa a postare uno script senza a capo?

  2. #2
    up

    mi basterebbe solo asapere come elencare le sottocartelle di una cartella.... please



  3. #3
    mi basterebbe solo asapere come elencare le sottocartelle di una cartella.... please
    se usi php 5 guarda qua:
    http://it2.php.net/manual/it/function.scandir.php

    se invece hai una versione precedente usa questa funzione:

    Codice PHP:
    if(!function_exists("scandir")) {
        function 
    scandir($dir) {
            
    $files = array();
            
    $fh opendir($dir);
            while (
    false !== ($filename readdir($fh)))
                
    array_push($files$filename);
            
            
    closedir($fh);
            return 
    $files;
        }

    ti restituisce un array contenente la lista di cartelle e files presenti in una directory del server, della quale devi passare il path intero.

    se poi ti servono solo le cartelle puoi aggiungere un controllo con la funzione is_dir()
    http://it2.php.net/manual/it/function.is-dir.php

  4. #4
    io l'ho modificata così:


    <?PHP
    if(!function_exists("scandir")) {
    function scandir($dir) {
    $i=0;
    $files = array();
    $fh = opendir($dir);
    while (false !== ($filename = readdir($fh)))
    array_push($files, $filename);
    $i++;
    echo $files[$i];
    closedir($fh);

    }
    }

    scandir("./img/");

    ?>


    ho provato anche con is_dir ma niente ...


    ma mi fa vedere solo ".."

  5. #5
    scandir("./img/");
    quella funzione va alla grande.
    prova a passarle il path completo della cartella "img", non solo il percorso relativo. parti proprio dalla radice tipo:

    Codice PHP:
    scandir('/home/dominio/public_html/'); 
    se sei sotto linux. se invece sei su windows dovresti partire da C:

  6. #6
    Originariamente inviato da OhMyGod
    quella funzione va alla grande.
    prova a passarle il path completo della cartella "img", non solo il percorso relativo. parti proprio dalla radice tipo:

    Codice PHP:
    scandir('/home/dominio/public_html/'); 
    se sei sotto linux. se invece sei su windows dovresti partire da C:
    fatto, dandogli:

    C:\Programmi\EasyPHP1-8\www\foto_gallery\img

    mi ritorna sempre ".."

  7. #7
    così funziona. sotto windows:

    Codice PHP:
    $arr scandir('D:\\\\Inetpub\\\\webs\\\\dominio\\\\');
    for (
    $i=0$i<count($arr); $i++) {
        if (
    is_dir('D:\\\\Inetpub\\\\webs\\\\dominio\\\\'.$arr[$i].'\\\\'))
            print(
    $arr[$i].'
    '
    );
    }
    unset(
    $i);
    unset(
    $arr); 
    uff che palle, il forum modifica un po' il codice.
    metti i doppi backslash ovunque nei percorsi delle cartelle; il forum ne toglie un paio...

  8. #8
    ora mi mostra "." e ".." , eppure nella cartella ci sono 6 foto e due sotto cartelle.


    senti io stavo uasando questa:

    <?php
    if ($handle = opendir('/percorso/ai/file')) {
    echo "Handle della directory: $handle\n";
    echo "File:\n";

    /* Questa è la maniera corretta di eseguire un loop all'interno di una directory. */
    while (false !== ($file = readdir($handle))) {
    echo "$file\n";
    }


    closedir($handle);
    }
    ?>

    che è la funzione per scansire la directori copiata pari pari dal manuale php

    solo che appundo usando is_dir non riesco a far si che vengano elencate solo le eventuali cartelle e non i files.

  9. #9
    in che modo usi is_dir? metti anche lo slash alla fine del percorso della cartella?

  10. #10
    <?php
    if ($handle = opendir('C:/Programmi/EasyPHP1-8/www/foto_gallery/img/.')) {
    echo "Handle della directory: $handle\n";
    echo "File:\n";

    /* Questa è la maniera corretta di eseguire un loop all'interno di una directory. */
    while (false !== ($file = readdir($handle))) {
    if (is_dir('C:/Programmi/EasyPHP1-8/www/foto_gallery/img/.'.$file))
    {
    echo "$file\n";
    }
    }



    closedir($handle);
    }
    ?>


    e mi da sempre e solo . e ..

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.