Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225

    Problema di inserimento dati in file txt

    Ciao ragazzi! Ho questo file:
    codice:
    <?PHP
    $FileElenco = file("disponib.txt");
    
    for ($i=0; $i<count($FileElenco); $i++)
    {
        $spezza_1 = explode("=",$FileElenco[$i]);
        $nome = $spezza_1[0];        //es: pippo
        $disponib = $spezza_1[1];        //es: 2-matt|5-pom|12-matt
        
        
            $disponib_1 = explode("|",$disponib);
            
            for ($x=0; $x<count($disponib_1); $x++)
            {
                //echo "Disponibilita = ".$disponib_1[$x]."<BR>";        //es: 5-pom
                $spezza_2 = explode("-",$disponib_1[$x]);
                $giorno = (int)$spezza_2[0];        //es: 5
                $quando = $spezza_2[1];            //es: p
                //$quando = str_replace(' ', '', $spezza_2[1]);            //es: pom
                //echo "Giorno = ".$giorno."<BR>";        //es: 5
                
                //$nuovadata = "g_".$giorno;
                $ins_nome = $nome."(".$quando.")";        //inserimento nominativi in base al giorno
                
                $fileout = "dati/giorni/g_".$giorno.".txt";
                $out = fopen($fileout,"a") or die("Impossibile aprire il file!!");
                fwrite($out,$ins_nome."<br>") or die("Impossibile scrivere su file!!");
                fclose($out) or die("Impossibile chiudere il file!!");
            }
    }
    ?>
    che carica un file "disponib.txt" contenente ogni riga dei turni giornalieri, tipo:
    codice:
    pippo=1-matt|3-pom|12-matt
    giovanni=2-pom|14-matt|7-pom|9-pom
    graziano=1-matt|14-pom
    Poi, attraverso questo file php, raccolgo i dati salvandoli in nuovi file txt con il nome delle giornate e all'interno i turni corrispondenti. Quindi, nel caso sopra avro':
    codice:
    g_1.txt:
    pippo(matt)<br>graziano(matt)
    
    g_3.txt:
    pippo(pom)
    
    g_14:
    giovanni(matt)<br>graziano(pom)
    
    ecc ecc..
    Il problema e' che mi ritrovo una cosa strana...alcuni file, invece di ritrovarmeli tutti su una linea me li ritrovo a capo, prima della chiusura di una parentesi. Tipo:
    codice:
    g_1.txt:
    
    pippo(matt
    )<br>graziano(matt)
    A cosa pensate sia dovuto?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    pippo=1-matt|3-pom|12-matt

    in realtà la stringa è così fatta


    pippo=1-matt|3-pom|12-matt'\r'

    dove '\r' è il carattere a capo

    ovvero in fondo a ogni sringa c'è il carattere a capo e quando esplodi l'ultimo elemento di $spezza_2 sarà matt'\r' quindi quando vai a fare "(".$quando.")" ti viene così (mat'\r') e quando apri il file la parentesi andrà a capo

  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Per risolvere potresti aggiungere come prima riga del primo for
    codice:
    
    $FileElenco[$i] = substr([$FileElenco[$i],0,strlen($FileElenco[$i])-1); 
    Ultima modifica di bstefano79; 01-12-2017 a 12:59

  4. #4
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    764
    o semplicemente usare la funzione trim
    eXvision

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 © 2024 vBulletin Solutions, Inc. All rights reserved.