Visualizzazione risultati 1 fino 8 di 8

Discussione: Ricavare Stringa da foglio txt

  1. #1
    mrkarati non è connesso Utente giovane
    Data registrazione
    30-04-2012
    Messaggi
    50

    Predefinito Ricavare Stringa da foglio txt

    Salve,
    la mia situazione è questa. Ho due fogli (o documenti... o pagine... o non so come si chiamano), uno txt e l'altro php. Nel primo sono salvate due stringhe come segue (ovviamente per esempio):

    Codice:
    Rosso
    Blu
    Nel foglio php invece voglio creare due variabili, una che salvi dentro di sé la stringa nella prima riga ed un'altra che salvi dentro di sé la stringa in seconda riga... ed è proprio cercando di scrivere questo codice che mi perdo.

    Sapreste darmi una mano?

  2. #2
    Guest

    Predefinito

    Codice PHP:
    $variabili = explode(PHP_EOL, file_get_contents("nome_file.txt"));
    # $variabili = array("Rosso", "Blu");

    # Oppure:
    list($var1, $var2) = explode(PHP_EOL, file_get_contents("nome_file.txt"));
    # $var1 = "Rosso";
    # $var2 = "Blu";

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,429

    Predefinito

    Codice PHP:
    list($prima, $seconda) = file('testo.txt',FILE_IGNORE_NEW_LINES);
    Se hai n scritte nel file, file() restituisce un array dove ogni elemento è una riga del file.

    Ciao!
    Ultima modifica di alemoppo : 02-06-2012 alle ore 13.10.55

  4. #4
    mrkarati non è connesso Utente giovane
    Data registrazione
    30-04-2012
    Messaggi
    50

    Predefinito

    Ottimo, vi ringrazio molto. Solo un'altra domanda. Se nel file txt sono salvati dei numeri (uno per ogni riga), le variabili che avrò in php saranno stringhe o numeri?

  5. #5
    Guest

    Predefinito

    In PHP la distinzione è piuttosto blanda. Comunque direi che saranno stringhe.
    Nessun problema:
    Codice PHP:
    $var1 = (int) "1";
    $var2 = (double) "3.14"; # O è (float)? Non ricordo..
    # Oppure, con un piccolo trucchetto non hai bisogno di distinguere tra interi e razionali:
    $var1 = "1" + 0;
    $var2 = "3.14" + 0;

  6. #6
    mrkarati non è connesso Utente giovane
    Data registrazione
    30-04-2012
    Messaggi
    50

    Predefinito

    Ah ok, ora provo a vedere se mi fila tutto liscio. Grazie per le informazioni comunque.

  7. #7
    mrkarati non è connesso Utente giovane
    Data registrazione
    30-04-2012
    Messaggi
    50

    Predefinito

    Se posso far un'altra domanda inerente l'argomento (sperando che ciò non venga considerato spam), se volessi far il procedimento inverso ossia non leggere una certa riga ma sovrascrivere una certa riga nel file txt cosa posso fare?

    In altre parole, nel file che v'ho scritto nel primo messaggio voglio semplicemente cambiare la stringa "Blu" con la stringa "Giallo". A dir il vero ho già un mio sistema però prevede la cancellazione completa e poi la riscrittura dell'intero file txt tramite un ciclo for... il che credo sia alquanto assurdo se esiste un metodo più veloce.

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,429

    Predefinito

    In realtà il "modo assurdo", purtroppo, è l'unico metodo possibile (intendo riscrivere da 0 il file).

    ---
    A dir il vero, ci sarebbe un modo, lavorando con fopen(), fseek(), fputs() (o simili).... Ma non conviene.
    ---
    Il modo più fattibile è:

    -prelevare tutto il file, ad esempio con la file_get_contents() (o file().. dipende da cosa devi fare)
    -modificare la stringa (nel tuo caso, trasformerei tramite implode() l'array)
    -riscrivere da 0 il file, ad esempio con la file_put_contents()

    p.s: per non andar offtopic, sarebbe meglio aprire un nuovo topic per ogni problema.

    Ciao!
    Ultima modifica di alemoppo : 03-06-2012 alle ore 01.28.33

Regole di scrittura

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