Visualizzazione risultati 1 fino 7 di 7

Discussione: Leggere contenuto di più file txt in sequenza

  1. #1
    Guest

    Predefinito Leggere contenuto di più file txt in sequenza

    Ho bisogno di leggere più file di testo in sequenza ed estrarne il valore.
    Quello che farei normalmente sarebbe:
    Codice PHP:
    $file1=fopen("view/1.txt","r");
    flock($file1, LOCK_EX);
    $number1=fread($file1, 100);
    flock($file1, LOCK_UN);
    fclose($file1);
    ma farlo per 60/70 file non sarebbe il massimo.

    Ho pertanto pensato di usare:
    Codice PHP:
    for ($a=1; $a<=6; $a++) {

    $file=fopen("view/$a.txt","r");
    flock($file, LOCK_EX);
    $number=fread($file, 100);
    flock($file, LOCK_UN);
    fclose($file);
    echo(
    "$number");

    }
    ma quando stampo a video $number i valori risultano tutti uniti e io ho bisogno di gestirli singolarmente richiamando le singole variabili (es. $number1, $number2 ecc...)

    Come faccio a fare in modo che questo accada?
    Vi chiedo gentilmente se oltre a postare il codice potreste anche spiegare i comandi eseguiti in modo che possa imparare qualcosa...

    Grazie

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    è il momento di scoprire gli array !

  3. #3
    Guest

    Predefinito

    Array scoperto ma comunque mi rimane il problema. La cosa che non riesco a capire è se estrarre il valore dei file con "for" è giusto (e poi devo inserire i valori in un array) oppure devo fare sin dall'inizio un'altra operazione.

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    boh, invece di $number = ... scrivi $number[] = ... ed i valori vengono aggiunti all'array automaticamente.

    Mi restano un po' di dubbi sul problema generale, sul perché tu abbia numeri disseminati uno per file, che non è un metodo proprio rapido

    per il resto, magari dai un'occhiata anche a file_get_contents().

  5. #5
    Guest

    Predefinito

    Dato che sto cercando di imparare php creo da me i miei scripts e purtroppo devo basarmi sulle conoscenze che ho. Comunque ritornando ai file.... ne ho così tanti perchè cerco di tenere monitorati i click su alcuni link.
    Al click sul link apro il file e lo incremento di uno...tutto qui... solo che avendo tanti link....(beh si è capito "tanti file")

    Comunque cambiando $number con $number[] funziona..... ma per stampare a video il risultato devo scrivere print $number[0]; print $number[1]; print $number[2]; ecc... fino al numero a cui devo arrivare?
    Codice PHP:
    for ($i=1; $i<=6; $i++) {

    $file=fopen("view/$i.txt","r");
    flock($file, LOCK_EX);
    $number[]=fread($file, 100);
    flock($file, LOCK_UN);
    fclose($file);

    }

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Se i file si chiamano "1.txt", "2.txt", "3.txt", ecc. fino a, per esempio, "10.txt", ti dovrebbe bastare fare così:
    Codice PHP:
    for($i=1;$i<=10;$i++)
    echo
    file_get_contents($i.".txt");
    Se invece non conosci l'ultimo file, potresti fare così:
    Codice PHP:
    $i=1;
    while(
    file_exists($i.".txt")) {
    echo
    file_get_contents($i.".txt");
    $i++;
    }
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    Sono riuscito a risolvere il proplema utilizzando gli array.

    Grazie mille per l'aiuto.

    (potete chiudere)

Regole di scrittura

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