Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Estrarre dati ... preg_match_all ...

    Un nostro programma mi esporta un file di testo in questo modo (vedi sotto) ed io vorrei prendere da qui Nome, città ed email per visualizzarli in sito (no problem con privacy...) gestendoli tramite mysql (ma questo viene dopo..)

    In pratica la "riga" inizia con il Cognome Nome e finisce con l'email.
    codice:
    Mario Rossi
    Qualcosa: boh
    Indirizzo: Via Regina Elena 11
    Città: Roma
    Provincia: Roma
    Cap: 01234
    Telefono: 061234567
    Fax: 06123456788
    Email: mario.rossi@signormariorossi.com
    Antonio Verdi
    Qualcosa: boh
    Indirizzo: Viale Michelangelo 68
    Città: Firenze
    Provincia: FI
    Cap: 43211
    Telefono: 055123456789
    Fax: 055321654987
    Email: averdi@verdiverdiverdi.com
    Ho usato delle espressioni regolari per riconoscere "Email:" e "Città:" per prenderne il contenuto successivo. Una cosa tipo
    Codice PHP:
    $reg_exp_email "/Email:([^\n]+)\n/i"
    Sono però in difficoltà a fargli riconosce il nome...
    Come potrei fare?
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Io mi sono scornato un casino e sinceramente la soluzione per te e' :
    // Deleted by user .....

    EDIT:

    Prova questo , avevo fatto un paio di boitate sulle aprentesi sopra
    Codice PHP:
    $ar = array() ;
    $pattern "/Email:\([^\n]+)\n/i" ;
    $ris preg_match($pattern $str $ar);

    echo 
    "<pre>".$ris."<hr>";
    var_dump($ar);
    echo 
    "</pre>";

    $pattern "/^(.?)* (.?)*/i" ;
    $ris preg_match($pattern $str $ar);

    echo 
    "<pre>".$ris."<hr>";
    var_dump($ar);
    echo 
    "</pre>"

  3. #3
    Chiedo scusa... mi sa che qualcosa non funziona... A video mi ritrovo questo risultato
    Immagini allegate Immagini allegate
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    si e' corretto.

    Il primo pattern e' quello che definisci te.

    Il prob da quello che vedo e' che hai piu' di un blocco alla volta da parsare o sbaglio?

    Inoltre la stampa sono le sottostringhe che vengono identificate dal pattern ovviamente tutte.
    Inoltre il pattern per l'email e' cquello che hai fonrito te.

    Io ti consiglio di spezzare i blocchi e darli in pasto alle reg exp facendo magari un pattern piu' restrittivo.

    Cmq non e' che puoi fare molto senza aver un maggio numero di caratteri di controllo.


    Potresti nel caso usare una tecnica differente, visto che le info sono scritte riga per riga e i blocchi di dati hanno tutti lo stesso numero di righe.

    una cosa del tipo
    Codice PHP:

    // Ometto i controlli tanto sono sempre gli stessi 

    $path "./miofile.txt";

    // carico in array il file
    $data file($path) ;
    $dataBlockDim ;

    $currBlock 0;
    for( 
    $i $i<count($data) ; $i+=)
    {
           echo 
    "Nome :".$data$dataBlockDim*$currBlock  ] ;
           echo 
    "Email  :".$data[ ($dataBlockDim*$currBlock)+$dataBlockDim-] ;
           
    $currBlock ++;

    O qlkosa di simile non ho testato per cui dovrai vedere te se non ho sbagliato i conti.

  5. #5
    Originariamente inviato da Virus_101
    Potresti nel caso usare una tecnica differente, visto che le info sono scritte riga per riga e i blocchi di dati hanno tutti lo stesso numero di righe.

    una cosa del tipo
    ... ..
    Dovrebbe funzionare ... (ho fatto un paio di prove "a mano" perchè non il txt vero a portata di mano...)

    Grazie...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Np

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.