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

    Argomento corretto di opendir

    Ciao,
    non riesco a capire come sfogliare una directory inferiore a "." (quella corrente).
    Lo script come riportato qui sotto non fa una piega.
    Ma se imposto $path = ".." o $path = "lower_folder" (nome di una cartella contenuta in quella corrente) i risultati sono zero directory (valore non reale) e un file a caso di quella corrente (in realtà ce ne sono due).
    Codice PHP:
    <?php

    $path 
    ".";
    $directories = array();
    $files = array();

    if (
    $handle opendir($path)) {
    while (
    false !== ($file readdir($handle))) {
    if (
    filetype($file) == "dir") { array_push($directories$file); }
    elseif (
    filetype($file) == "file") { array_push($files$file); }
    }
    closedir($handle);
    }
    sort($directories);
    sort($files);

    echo 
    "<pre>directories:
    "
    ;
    print_r($directories);
    echo 
    "files:
    "
    ;
    print_r($files);
    echo 
    "</pre>";
    ?>
    La documentazione ufficiale non mi ha aiutato molto (indicano sempre solo la variabile contenente la directory, non la traducono in stringa) e i risultati di ricerca sul forum sono poveri.
    Penso di sbagliare una stupidaggine, potete dirmi quale è il modo corretto di dare argomenti a opendir() per le sottodirectory?
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2
    Sto provando da un bel po' anche su un altro server (sempre Linux) ma non riesco ad aprire directory diverse dalla corrente.
    Ho provato con

    Codice PHP:
    $path "./nome_directory/";
    // oppure
    $path "nome_directory/"
    entrambi verificati con is_dir():

    Codice PHP:
    if (is_dir($path)) { echo "Non sei pazzo."; } 
    ma in entrambi i casi gli array $files e $directories sono vuoti

    Attendo un suggermento tanto breve quanto illuminante...
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3
    Trovato:
    il comando opendir() ha sempre bisogno del percorso relativo completo, nonostante senza di esso acceda ugualmente al nome del file come stringa (invece che come risorsa).
    Mancava la concatenazione della cartella scelta con il file:
    $path."/".$file

    Quindi, errata corrige:

    Codice PHP:
    <?php
    $path 
    "admin";
    if (
    is_dir($path)) { echo "Check: $path è una directory."; } else { echo "Check: $path non è una directory."; }

    $directories = array();
    $files = array();

    if (
    $handle opendir($path)) {
    while ((
    $file readdir($handle)) !== false) {
    if (
    filetype($path."/".$file) == "dir") { array_push($directories$file); }
    elseif (
    filetype($path."/".$file) == "file") { array_push($files$file); }
    }
    closedir($handle);
    }
    sort($directories);
    sort($files);

    echo 
    "<pre>directories:
    "
    ;
    print_r($directories);
    echo 
    "files:
    "
    ;
    print_r($files);
    echo 
    "</pre>";
    ?>

    Tutto bene quel che finisce bene
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.