Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64

    Importare Dati da file txt/html in DB mysql

    Salve a tutti devo inserire in database i valori contenuti in un file html/txt(ho lo stesso file in entrambi i formati) nel file sono presenti i nomi dei paesi,stati ecc.. e sono all'interno di un tag <select><option> per evitare di inserirli a mano volevo estrarre i nomi dal tag select e ordinarli in modo da poterli inserire riga per riga nella tabella,ho trovato alcune guida,ma sinceramente non riesco a seguirle se qualcuno può spiegarmi,anche brevemente,ma in modo chiaro come precedere,mi farebbe un grande favore^^'

  2. #2
    sai usare le espressioni regolari???
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    Originariamente inviato da alcio74
    sai usare le espressioni regolari???
    si=)

  4. #4
    beh.. allora, devi leggere il file HTML (o TXT) con la funzione FILE_GET_CONTENTS().
    Questa ti restituisce il file sorgente come fosse una stringa di testo.
    All'interno della stringa, individui degli "agganci" su cui poi vai a strutturare tante espressioni regolari quante sono le informazioni che devi estrarre dal sorgente per trasformarle in dati da inserire nel DB. Per fare questo ti serve PREG_MATCH(), oppure PREG_MATCH_ALL(), in base a quelle che sono le tue esigenze.
    Estratti tutti i dati di cui necessiti, ed incapsulati in tante variabili quante sono le colonne del DB che vuoi aggiornare, ti colleghi al DB e lanci la query.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    mmh ho qualche problema:\ non riesco a eliminare le parti che non mi servono,non so che tipo di controllo effettuare con preg_match,il mio file è strutturato così:
    codice:
    <select name="country"> 
    <option value="">--Seleziona--</option> 
    <option value="Afghanistan(AF)">Afghanistan</option>
    .
    .
    .
    .
    ecc..
    </select>
    ho provato con preg_replace,riuscendo ad eliminare quasi tutta la prima parte,ma blocco dopo value=" se devo scrivere una riga per ogni valore,tanto vale che inserisco i dati manualmente xD..Credo di aver sottovalutato la cosaXP,magari se puoi essere più specifico su come procedere,l'ideale sarebbe estrarre i valori all'interno di <option value="VALORE">,tenendo anche presente che questo procedimento dovrò farlo una sola volta,devo creare una nuova tabella "Country" e inserire li la lista completa,che poi andrò a richiamare dove mi serve
    grazie in anticipo^^'

  6. #6
    non ho capito.
    Ti serve la regexp???
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    Originariamente inviato da alcio74
    non ho capito.
    Ti serve la regexp???
    No a me serve un modo per estrarre dal file di testo tutti nomi dei paesi e aggiungerli alla tabella country se usare le regular expression mi facilita il lavoro ben venga altrimenti ne faccio a menoxD come ho detto non è una procedura che sarà utilizzata,serve a me per riempire la tabella con tutti i nomi,senza perdere tempo ad inserirli uno alla volta

  8. #8
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    Sono riuscito a fare qualche passo avanti:

    Codice PHP:
    $file fopen("countryENG.txt","r"); 
    while(!
    feof($file)){ // lettura file fino alla fine 
    $riga=fgets($file); // legge tutta la riga 
    if(strlen($riga)>1
    $riga=trim($riga); // elimino gli spazi all'inizio e alla fine 
    $riga1=preg_replace('/">/'," ",$riga);
     
    $riga2=preg_replace('/<option value="/'," ",$riga1); 
    andando ad eseguire il codice mi ritrovo:
    codice:
    Afghanistan(AF) Afghanistan 
    Albania(AL) Albania 
    Algeria(DZ) Algeria 
    American Samoa(AS) 
    American Samoa
    in html corrisponde a:
    codice:
    Afghanistan(AF) Afghanistan</option>
     
    Albania(AL) Albania</option>
    
    Algeria(DZ) Algeria</option>
     
    American Samoa(AS) American Samoa</option>
    Ovvero il valore presente in option value="" e il valore che appariva nel menù select,a questo punto mi andrebbe bene prendere i valori nel option value,ovvero Albania(AL) ecc..anche perchè non riesco ad eliminare </option>
    mi da errore Unknown modifier ad esempio procedendo così:
    Codice PHP:
    $riga3=preg_replace('/</option>/'," ",$riga2); 
    mi da l'errore:
    codice:
    Warning: preg_replace() [function.preg-replace]: Unknown modifier 'o' in C:..ecc

  9. #9
    Penso che ti stai complicando la vita.
    Innanzi tutto, con la funzione FILE_GET_CONTENTS(), così ottieni una stringa con tutto il testo del file con una sola riga di codice.
    Secondo poi, usare le espressioni regolari per cancellare la scritta option dal tag HTML è un po' uno spreco.
    A prescindere che nella tua, l'errore ti viene restituito perché non fai l'escape dello slash su OPTION, guarda come farei una io:
    codice:
    $html = file_get_contents("file_sorgente.txt"); // o .HTML
    // <option value="">--Seleziona--</option> 
    $pattern = "/<option value=\"(.*?)\">--Seleziona--<\/option>"/i";
    preg_match_all($pattern, $html, $match);
    Dove $html è quello che ottieni con FILE_GET_CONTENTS() e $match sarà l'array dei risultati, all'interno del quale troverai tutti i contenuti del value di tutte le option presenti nella pagina.

    Non ho testato la bontà dell'espressione regolare: l'ho scritta qui di getto.
    Probabilmente necessita di quale limatura.
    Probabilmente, dovrai creare più di una se hai più select, ma credo che il metodo sia chiaro!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    ti suggerisco di cercare online una classe php per leggere dal formato xml o xhtml, in questa maniera, senza ricorrere alle regular expression, con una istruzione, puoi trasferire il contenuto della <select> in un array multidimensionale, e con un ciclo comporre una query oppure inviare piu query
    semplicità ... al sol nominarla sembra svanire

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.