Visualizzazione risultati 1 fino 12 di 12

Discussione: Confronto file: Da txt a cartella

  1. #1
    Guest

    Predefinito Nome di tutti i file

    Come posso trovare i nomi di tutti i file in una cartella?

    Fino ad ora con il manuale php ho creato questo scritp:
    Codice PHP:
    <?
    $directory
    ="";
    $estensione="txt";
    foreach(
    glob($directory."*.".$estensione) as $f)
    {
    print(
    "$f");
    }
    ?>
    Ma mi trova solo un file.. come faccio a trovarli tutti?

    Mi scuso ma vi chiedevo anche:
    Come faccio a eliminare l'estensione dal resto del file?
    Io avevo capito di usare la funzione explode ma non capisco come funziona, mi potete fare un esempio?
    Ultima modifica di guglio : 05-01-2008 alle ore 17.16.10

  2. #2
    Guest

    Predefinito

    Potresti usare la funzione glob()
    Cerca anche nel forum, se n'è già parlato.


    Ciao!

  3. #3
    Guest

    Predefinito

    Ho provato, Mi restituisce un solo file non il nome di tutti...
    Ultima modifica di guglio : 05-01-2008 alle ore 17.21.09

  4. #4
    Ospite Guest

    Predefinito

    Non sono sicuro di aver capito.
    Comunque, qualcosa del genere?
    Codice PHP:
    <?


    $dir
    = '.'; //nome della directory con i file .dbo (senza slash finale)
    $tutti = 'ip.txt'; //file con tutti gli ip

    $tutti = file( $tutti );
    $files = glob( $dir.'/*.dbo' );

    function
    trim_el( &$el ){

    $el = trim( $el );

    }

    array_walk( $tutti, 'trim_el' );

    foreach(
    $files as $file ){

    $file = basename( $file, '.dbo' );

    if(
    in_array( $file, $tutti ) )

    echo
    'l\'ip' . $file.' è presente nel file txt';

    else

    $nopas[] = $file;

    }

    ?>
    Ciao!

  5. #5
    Guest

    Predefinito

    Eh, ma che script hai usato?
    Dovresti usare un ciclo, come nell'esempio del link.


    CIao!

  6. #6
    Guest

    Predefinito

    Scusa Porbid ma il tuo script non funziona,
    Di file dbo ce ne sono 5 nel database ho scritto solo l'ip di uno e alla fine del php un print("$nopas"); e la pagina risulta vuota.
    Mettendo solo un file e mettendo il suo ip in ip.txt Non appare nulla...
    Ultima modifica di guglio : 05-01-2008 alle ore 17.32.20

  7. #7
    Ospite Guest

    Predefinito

    Scusa Porbid ma il tuo script non funziona,
    Di file dbo ce ne sono 5 nel database ho scritto solo l'ip di uno e alla fine del php un print("$nopas"); e la pagina risulta vuota.
    Mettendo solo un file e mettendo il suo ip in ip.txt Non appare nulla...


    $nopas è un array, non una stringa... print_r()
    Inoltre prova ora, l'ho migliorato un'pò ;)

    Ciao!

  8. #8
    Guest

    Predefinito

    Lo script non worka...
    Ho risolto: Ecco lo script "tarocco"

    Codice PHP:
    <?
    $dir
    = '.'; //nome della directory con i file .dbo (senza slash finale)
    $tutti = 'ip.txt'; //file con tutti gli ip

    $tutti = file( $tutti );
    $files = glob( $dir.'/*.dbo' );
    foreach(
    $files as $file ){

    $file = basename($file,'.dbo');

    if(
    in_array($file,$tutti))
    print(
    "$file Tutto a posto<br>");
    else
    print(
    "$file Ip di troppo<br>");
    }
    ?>
    Ultima modifica di guglio : 05-01-2008 alle ore 17.56.44

  9. #9
    Ospite Guest

    Predefinito

    Il problema è che ci sono più file e risulta: L'ip 55.555.555 è nel file
    ma gli altri 5 che non ci sono non li sengala.. quindi ho cancellato 55.555.555
    Hai aggiornato lo script secondo l'ultima modifica del post #4?
    Ho aggiunto delle funzioni per togliere spazi laterali dalla stringa chè sono necessarie per un corretto funzionamento dello script...

    Prova anche a capire tu dove possa essere un eventuale errore...suvvia, un'pò di debug!

    e il risultato è: Array
    Hai usato print_r()?
    Perchè se ti stampa Array significa che hai usato funzioni per le stringhe, come echo o print.

    Ci rinuncio, farò una cosa manuale ....
    Non è così che si impara.

    Ciao!

  10. #10
    Guest

    Predefinito

    Leggi il messaggio sopra al tuo,
    Ho risolto, grazie, mi hai insegnato un po di funzioni: In_Array, foreach, print_r e basename grazie!

    Risolto! Grazie ancora! Grz!!!!!!!!

  11. #11
    Ospite Guest

    Predefinito

    Aggiungi, prima del foreach, questo:

    Codice PHP:
    function trim_el( &$el ){

    $el = trim( $el );

    }

    array_walk( $tutti, 'trim_el' );
    al quale facevo riferimento prima, o potresti avere problemi.

    Ciao!

  12. #12
    Guest

    Predefinito

    Oh.. Grazie! Lo aggiungo subito!

    Grazie ancora!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •