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

    Vedere cosa c'è e salvarne la lista

    Come si puo fare uno script che va a vedere che file ci sono in una cartella e poi salvi la lista su file di testo
    Grazie mille per gli aiuti

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Codice PHP:
    $fp fopen('lista_file.txt''w');
    fwrite($fpimplode("\r\n"glob('*.*')));
    fclose($fp); 
    per la ricerca dei file
    http://it.php.net/manual/it/function.glob.php

    per la scrittura su file
    http://it.php.net/manual/it/function.fopen.php

  3. #3
    se vuoi anche andare in sottodirectory... tempo fa mi ero fatto sta funzioncina

    Codice PHP:
    function dir_tree_full($path='.')
     {
      
    //contatore statico che indica la profondità del nodo correntemente analizzato
      
    static $deep
      
      if(!(
    $dir opendir($path))) return 0;
      
      while(
    $file readdir($dir))
          {
                  
             
    //se il file letto è diverso da '.' e '..'
             
    if(($file != '.') && ($file != '..'))
               {
                 
    //stampo dei caratteri di indentazione della direcrory corrente in base alla pofondità del nodo
                 
    for($j=0;$j<$deep;$j++) echo "----"
                  
                 echo 
    "$file
    "
    ;//stampo il nome del file o della directory

             
                 
    if(is_dir("$path/$file"))//se il file è una directory devo entrarvi ed analizzarla
                  
    {
                   
    $deep++;//scendo di un livello
                   
    dir_tree_full("$path/$file");//stampo l'albero della dir appena trovata 
                  
    }
               }
         }     
      
    closedir($dir); //chiudo la dir          
     
      //torno ad analizzare il livello superiore
      
    $deep--;
      return 
    1;         
     } 
    puoi tranquillamente adattarla per farti restituire una lista formattata come meglio credi

  4. #4
    Grazie mille a tutti e 2!!
    è proprio quello che volevo!!!!

    EDIT
    Scusate di nuovo il mio disturbo,ma non so perchè non riesce a scrivermi nel file di testo i valori passati dalla ricerca nella cartella,mi riesce a scrivere solo testo semplice ma mi da errore quando tento di fargli scrivere il contenuto di una variabile
    Qua il codice
    Codice PHP:
    <?php
    $dir 
    "D:\prova";
    //leggo il contenuto
    if (is_dir($dir)) {
       if (
    $dh opendir($dir)) {
         while ((
    $file readdir($dh)) !== false) {
                 echo 
    "$file 
    filetype($dir $file) .  "\n";
           }
           
    closedir($dh);
       }
    }

    //scrivo su file

    $filename 'C:\Programmi\Apache Group\Apache2\htdocs\lista_file.txt';

    $somecontent "$file ciao";

    // Verifica che il file esista e sia riscrivibile
    if (is_writable($filename)) {

       
    // In questo esempio apriamo $filename in append mode.
       // Il puntatore del file è posizionato in fondo al file
       // è qui che verrà posizionato $somecontent quando eseguiremo fwrite().
       
    if (!$handle fopen($filename'a')) {
             echo 
    "Non si riesce ad aprire il file ($filename)";
             exit;
       }

       
    // Scrive $somecontent nel file aperto.
       
    if (!fwrite($handle$somecontent) ===FALSE) {
           echo 
    "Non si riesce a scrivere nel file ($filename)";
           exit;
       }

       echo 
    "Riuscito, scritto ($somecontent) nel file ($filename)";

       
    fclose($handle);

    } else {
       echo 
    "Il file $filename non è accessibile";
    }


    ?>
    Ecco,lui mi scrive gli spazie e ciao ma niente della varibile $file e mi genera anche errore,perchè?

  5. #5
    Nessuno sa come fare per far eseguire la scrittura degli argomenti della variabile senza generare errori?
    L'errore che a me mi da è quello relativo al cercare di scrivere i dati

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Lo script che hai indicato, senza aver seguito nessuno degli esempi che ti sono stati proposti, così come si trova non riuscirebbe a scrivere nulla oltre a "ciao". Questo perchè la variabile $file è limitata all'interno del ciclo while. Qualora venisse modificato per rendere accessibile la variabile $file anche all'esterno del ciclo, oltre al nome dei file ti scriverebbe anche gli indici delle directory, cioè . e ..

    Comunque, queste sono le modifiche da apportare al codice.

    Sostituisci il while col codice che segue. E' necessario aggiungere un controllo per evitare di recuperare anche i nodi relativi alle cartelle, quella principale e le relative. Poi bisogna raggruppare i valori recuperati dalla ricerca in un array...

    Codice PHP:
    while (($file readdir($dh)) !== false) {
      if(
    $file != '.' && $file != '..') {
        echo 
    "$file 
    filetype($dir $file) .  "\n";
          
    $files[] = $file;
      }

    riscrivi la variabile $somecontent per permetterle di scrivere effettivamente i valori recuperati precedentemente in $files

    Codice PHP:
    $somecontent implode("\r\n"$files); 
    alla fine, sostituisci

    Codice PHP:
    if (!fwrite($handle$somecontent) ===FALSE
    con

    Codice PHP:
    if (!fwrite($handle$somecontent)) 

  7. #7
    Scusa ma sono poco esperto di php e lo uso pochissimo,
    comunque il codice io l'ho modificato come mi hai detto però non mi funzia più
    Ecco come l'ho modificato
    Codice PHP:
    <?php
    $dir 
    "D:\prova";
    //leggo il contenuto
    if (is_dir($dir)) {
       if (
    $dh opendir($dir)) {
         
    while ((
    $file readdir($dh)) !== false) { 
      if(
    $file != '.' && $file != '..') { 
        echo 
    "$file 
    filetype($dir $file) .  "\n"
          
    $files[] = $file
      } 
    }

    }

    //scrivo su file

    $filename 'C:\Programmi\Apache Group\Apache2\htdocs\lista_file.txt';

    $somecontent implode("\r\n"$files);


    // Verifica che il file esista e sia riscrivibile
    if (is_writable($filename)) {

       
    // In questo esempio apriamo $filename in append mode.
       // Il puntatore del file è posizionato in fondo al file
       // è qui che verrà posizionato $somecontent quando eseguiremo fwrite().
       
    if (!$handle fopen($filename'a')) {
             echo 
    "Non si riesce ad aprire il file ($filename)";
             exit;
       }

       
    // Scrive $somecontent nel file aperto.
      
    if (!fwrite($handle$somecontent)) {
           echo 
    "Non si riesce a scrivere nel file ($filename)";
           exit;
       }

       echo 
    "Riuscito, scritto ($somecontent) nel file ($filename)";

       
    fclose($handle);

    } else {
       echo 
    "Il file $filename non è accessibile";
    }


    ?>

  8. #8
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Guarda che i percorsi che stai indicando difficilmente li utilizzerai online. Se è solo per fare dei test in locale, va bene. Altrimenti dovrai indicarli diversamente.

    Comunque, devi aggiungere uno slash al percorso indicato nella variabile $dir
    $dir = "D:/prova/";

    e poi ti manca una parentesi graffa } alla fine.

  9. #9
    Si sto testando tutto in locale,però con i tuoi accorgimenti non mi funziona lo stesso
    Posso chiederti di postarmi il codice esatto se non è un disturbo per te?
    Grazie mille comunque degli aiuti che mi stai dando

  10. #10
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Credevo di averti detto quali modifiche apportare. Cos'altro ti manca?

    Se dici "non funziona" è difficile aiutarti perchè non significa nulla. Che errore ricevi?

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.