Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di alegia76
    Registrato dal
    Mar 2003
    Messaggi
    1,179

    Estrazione dati da un file .txt

    Ciao!

    Ho una riga che ha il seguente formato:

    "campo1";"campo2";"campo3";"campo4";"campo5";"camp o6";"campo7";"campo8"

    Come faccio a prendere i singoli campi per poi inserirli nel DB?

    Grazie

    Sei l'eventualità di un'anomalia che nonostante i miei più onesti sforzi non sono stato in grado di eliminare da quella che altrimenti sarebbe un'armonia di precisione matematica..

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    memorizzi la riga in una variabile ($riga) e poi usi
    $campi = explode(";",$riga);
    $campi sarà un'array.

  3. #3
    Utente di HTML.it L'avatar di alegia76
    Registrato dal
    Mar 2003
    Messaggi
    1,179
    Grazie

    Ma i campi hanno le virgolette..poi ne faccio una replace?
    Sei l'eventualità di un'anomalia che nonostante i miei più onesti sforzi non sono stato in grado di eliminare da quella che altrimenti sarebbe un'armonia di precisione matematica..

  4. #4
    Utente di HTML.it L'avatar di alegia76
    Registrato dal
    Mar 2003
    Messaggi
    1,179
    Inoltre, io ho una serie di righe (sono 269): ne devo fare un while?

    Potresti aiutarmi con il codice?
    Sei l'eventualità di un'anomalia che nonostante i miei più onesti sforzi non sono stato in grado di eliminare da quella che altrimenti sarebbe un'armonia di precisione matematica..

  5. #5
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Se vuoi fare presto usa LOAD DATA di MySQL:
    http://dev.mysql.com/doc/mysql/en/load-data.html

  6. #6
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da VaLvOnAuTa
    memorizzi la riga in una variabile ($riga) e poi usi
    $campi = explode(";",$riga);
    $campi sarà un'array. [/supersaibal]
    e se poi non ti servono gli apici doppi fai

    $campi[$i]=replace("/"", "", $campi[$i]);

    Dove $i è l' indice dell' array creato con explode..
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  7. #7
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    [supersaibal]Originariamente inviato da alegia76
    Grazie

    Ma i campi hanno le virgolette..poi ne faccio una replace? [/supersaibal]
    sì.. potresti fare qualcosa del genere
    Codice PHP:
    foreach ($campi as $value) {
     
    $value=str_replace("\"","",$value);
     
    mysql_query("INSERT quello che ti pare");


  8. #8
    Utente di HTML.it L'avatar di alegia76
    Registrato dal
    Mar 2003
    Messaggi
    1,179
    function ctr_flow_tess_tren($file,$label){

    $fp = fopen($file,'r+');
    if (!$fp){
    return false;
    }

    $j = 0;

    while (!feof($fp)){
    $testo = fread($fp, "\n");
    $campi = explode(";",$testo);


    $p = 0;
    for ($i=0; $i <= $campi; $i++){
    $campi[$i]=replace("\"", "", $campi[$i]);
    }

    $j++;
    } // while

    return ($campi);

    }
    Sei l'eventualità di un'anomalia che nonostante i miei più onesti sforzi non sono stato in grado di eliminare da quella che altrimenti sarebbe un'armonia di precisione matematica..

  9. #9
    Utente di HTML.it L'avatar di alegia76
    Registrato dal
    Mar 2003
    Messaggi
    1,179
    Mi potete correggere questo codice che ho postato?

    Grazie
    Sei l'eventualità di un'anomalia che nonostante i miei più onesti sforzi non sono stato in grado di eliminare da quella che altrimenti sarebbe un'armonia di precisione matematica..

  10. #10
    prova così
    codice:
    <?
    function ctr_flow_tess_tren($file, $label, $option = '') {
        $lines = file($file);
        $new_lines = array();
        $fields = array();
        foreach($lines as $key=>$val) {
                $fields = explode($label, trim($val));
                if($option != '') {
                   $new_field = array();
                   foreach($fields as $field) {
                           $new_field[] = str_replace($option, '', $field);
                   }
                } else {
                   $new_field = $fields;
                }
                $new_lines[] = $new_field;
        }
        return $new_lines;
    }
    
    $campi = ctr_flow_tess_tren('pippo.txt', ';', '"');
    foreach($campi as $campo) {
            print_r($campo);
            echo "
    
    ";
    }
    ?>
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

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.