Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    recuperare dati da un file csv

    salve salvino!

    io ho un file csv (non so se sarà proprio csv, comunque mi hanno detto che sarà un txt con campi racchiusi tra virgolette e separati da punti e virgola):

    "id";"ditta";"indirizzo";"cap";"etc..."\n
    "1";"nome ditta";"via garibaldi, 7400/c topolinia";"12345";"etc..."\n


    grosso modo il formato sarà questo. Io devo recuperare i dati, e fino a qui tutto ok mi verrebbe da dire...ma nel caso gli stessi campi contengano al loro interno " e/o ; come devo procedere?

    qualsiasi suggerimento è ben accetto!!



    Grazie!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    up
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    ti dai una tastierata sulla mano sinistra

    Oppure imposti il delimitatore a ( | ) oppure ( ### ) oppure ( ----- ) in modo insomma che la possibilità che si ripeta nei campi sia bassissima!
    Occhiali da Sole www.OtticaGold.it
    Marche: Diesel, Dior, Emporio Armani, Gucci, Oakley, Oxydo, Police, Ray-Ban, Roberto Cavalli, Valentino, Vogue - Per le altre... cerca su google.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    prova ad implementare le sequenze di escape, oppure usare delimitatori più complessi, io usavo [|||||] che mi sembra ragionevole dire che nessuno metterà mai nel proprio file
    *********************************
    Andrea
    *********************************

  5. #5
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    oppure cripti l'output del testo in base64, metti i separatori |!--!| senza criptarli e non ci saranno speranze..

  6. #6
    intanto grazie pre aver risposto, poi ci sono solo 2 punti

    1. il testo non può essere criptato (all'inizio invece doveva esserlo), visto che devo lavorare in concomitanza con un altro programmatore abbiamo (ha) scelto di non usare criptazione
    2. i separatori non li posso inventare, anche io usavo # e | ma mi è stato detto che devo utilizzare invece il ; e " , se no mica chiedevo


    ...quindi, altre soluzioni?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Non testato:

    codice:
    $campi = explode(":", $riga);
    $nonFinito = "";
    foreach ($campi as $key => $campo)
       {
       // se l'ultimo carattere é doppi apici me lo memorizzo
       if (substr($campo, -1, 1) == "\"")
           {
           $nonFinito = $campo;
           unset($campi[$key];
           }
       // se il primo carattere non é doppi apici ci appendo il prec.
       if (substr($campo, 0, 1) != "\"")
           $campi[$key] = $nonFinito . $campo;
       }

  8. #8
    ti ringrazio!

    ma sembra non funzionare...alla fine mi restituisce un'array vuoto.
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    aggiungi:

    print_r($campi);

    prima di:

    unset($campi[$key];

    E poi lancia e inoltra l'output...

  10. #10
    ci sono quasi!!

    codice:
    <?php
    $f = file_get_contents("segnalazione_2.txt");
    
    $f2 = explode("\n", $f); // prendo intestazioni e relativi valori
    array_pop($f2); 	 // elimino l'ultimo elemento che non serve
    
    foreach($f2 as $key=>$value){
    	$a = explode("\";\"", $f2[$key]);
    	foreach ($a as $k=>$v)
    		echo "$k=>$a[$k]
    \n";
    }
    ?>
    questo è il mio codice e sembra funzioni come voglio, ora devo solo eliminare le prime virgolette (al primo campo) e le ultime, poi dovrei proprio essere apposto...ora lo testo su un pò di file.


    @margherite: grazie dell'aiuto! il tuo scriot mi ha dato l'input per scrivere quello!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.