Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    lettura txt .. carattere di fine riga

    ho un problema con la lettura di un file txt ..
    nel senso che utilizzando il contenuto della riga letta, per scrivere un altro file, mi trasporto anche il 'fine riga'
    così presumo, visto che a parte l'ultima riga letta, in fase di scrittura mi va a capo (oltre che a fine di ogni riga scritta) anche ad ogni variabile che contiene la riga letta.
    spero di essere stato chiaro

    vi indico il codice e il contenuto dei due file (input + output)

    lettura file:

    Codice PHP:
    $num_righe_lette 0;
    while ((
    $file_input_rec fgets($file_input)) !== false)             
       {                                                              
        ++
    $num_righe_lette;
        
    $output scrivi_output($file_output$num_righe_lette$file_input_rec);   
        
    $esito           $output[0] ;                                                             
        
    $err             $output[1] ;    
        if (
    $esito == 'KO')                
           {break;}                              
       } 
    scrittura file:

    Codice PHP:
    function scrivi_output($file_output$num_righe_lette$file_input_rec)
      {
       
    $esito 'OK'
       
    $err '';

       
    // --> controllo che la riga non sia più lunga di 30 caratteri
       
    $lung_str strlen($file_input_rec);
       if (
    $lung_str 30)                           
          {
           
    $esito 'KO'
           
    $err 'Riga n. ' .$num_righe_lette' lunga più di 30 caratteri !';    
           goto 
    end;
          }                       

       
    // --> scrittura riga 
       
    $file_output_rec "$"."{$file_input_rec} =  trim($_POST ['{$file_input_rec}']);";           
       
    fwrite($file_output$file_output_rec ."\n");  

       
    end:     
          
    $output = array($esito$err);  
          return  
    $output 
      } 
    file di input:

    codice:
    123456789
    987654321
    file di output:

    codice:
    $123456789
     =  trim(Array ['123456789
    ']);
    $987654321 =  trim(Array ['987654321']);

  2. #2

    Re: lettura txt .. carattere di fine riga

    Originariamente inviato da JANUS70


    Codice PHP:

       
    // --> scrittura riga 
       
    $file_output_rec "$"."{$file_input_rec} =  trim($_POST ['{$file_input_rec}']);";           
       
    fwrite($file_output$file_output_rec ."\n"); 
    Sei sicuro di questa riga? Deve essere così? Deve scrivere $rigainput = trim(Array ['rigainput']); ??

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    esattamente

  4. #4
    Prova mettendo un str_replace, indicando come termine di search "\n" e magari anche "\r\r" e sostituendolo con stringa vuota, "".

    esempio
    Codice PHP:
    $file_input_rec str_replace("\r\n"" "$file_input_rec);
    $file_input_rec str_replace("\n"" "$file_input_rec);
    $file_input_rec str_replace((chr(13)), " "$file_input_rec); 
    così levi tutti i ritorni a capo della riga.


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Grazie mille .. funcsia !

    ho provato anche singolarmente con le 3 "str_replace" ..
    funziona sia con "\n" che "\r\n", ma non con (chr(13))

    visto che ci siamo ..
    che sarebbero .. ?

    "\r\n"
    (chr(13))

    Grazie mille

  6. #6
    Originariamente inviato da JANUS70
    Grazie mille .. funcsia !

    ho provato anche singolarmente con le 3 "str_replace" ..
    funziona sia con "\n" che "\r\n", ma non con (chr(13))

    visto che ci siamo ..
    che sarebbero .. ?

    "\r\n"
    (chr(13))

    Grazie mille
    \r\n è il ritorno a capo unix-like, chr(13) è il corrispondente di quando premi "INVIO" ma espresso in base alle tabelle ascii.
    In base a come salvi un testo può essere insufficiente \n o \r\n, soprattutto quando il testo viene da un sistema winds magari tramite notepad con codifica windows o come si chiama e tu stai lavorando su un *nix


  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    grazie mille !

    ah ... mi correggo

    la riga da scrivere non doveva essere
    "$rigainput = trim(Array ['rigainput']);" ma
    $rigainput = trim($_POST ['rigainput']);

    sistemato !

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.