Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: preg_match_all

  1. #1

    preg_match_all

    Buongiorno,
    vorrei ampliare l'inserimento delle autovetture nel mio db per velocizzare il tutto...
    Dovrei inserire dei dati tutti insieme che ho in questo formato
    codice:
    ALFA ROMEO 159 (939) 1.8 TBi    05.09 - 11.11    147    200    1742    939 B1.000    Tre volumi
    ALFA ROMEO 159 (939) 1.8 MPI    03.07 -          103    140    1796    939 A4.000    Tre volumi  
    ALFA ROMEO 159 (939) 1.9 JTS    09.05 - 11.11    118    160    1859    939 A6.000    Tre volumi
    Avevo pensato di partire da quel punto (.) che è tra il mese e l'anno per poi spostarmi e prendere i dati da sinistra e da destra, però non so come fare per prendermi i dati dalle righe successive...
    Mi date un'idea?
    Ultima modifica di Luigi636; 28-01-2016 a 12:31

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Intanto un'idea, se proprio dovessi scegliere un separatore, io sceglierei il - visto che è l'unico che compare, di . ce ne sono diversi e puoi far confuzione.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Intanto un'idea, se proprio dovessi scegliere un separatore, io sceglierei il - visto che è l'unico che compare, di . ce ne sono diversi e puoi far confuzione.
    Giusto... ;-)

  4. #4

  5. #5
    Il problema è che quel Tre Volumi a volte cambia in Station Wagon... Come potrei fare? Perchè nello stesso testo potrebbero esserci entrambi, quindi come faccio ad ogni riga a determinare quale dei due separatori arriva prima...? :-/

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il problema è che non c'è un vero e proprio schema da poter sfruttare con le espressioni regolari, troppe cose che possono variare.
    Un esempio: nelle righe che hai proposto la marca è sempre Alfa Romeo, quindi si potrebbe assumere "le prime 2 parole sono la marca", ma poi certamente avrai anche altre marche, come Fiat, e il discorso "le prime due parole..." non vale più

  7. #7
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Il problema è che non c'è un vero e proprio schema da poter sfruttare con le espressioni regolari, troppe cose che possono variare.
    Un esempio: nelle righe che hai proposto la marca è sempre Alfa Romeo, quindi si potrebbe assumere "le prime 2 parole sono la marca", ma poi certamente avrai anche altre marche, come Fiat, e il discorso "le prime due parole..." non vale più
    Esatto.. L'unica cosa semi-statica è la fisionominia del telaio che sono 3 Volumi, 2 Volumi, Station Wagon e credo poche altre... Non si potrebbe con un array ciclare per vedere quale c'è delle 3 e poi proseguire..? Però bisognerebbe farlo per ogni riga.. Potrei fare un replace dopo aver preso i dati in modo da eliminare il separatore della prima riga...?

  8. #8
    Nessuno può darmi un'idea?
    Scusate l'insistenza!

  9. #9
    Dall'esempio che hai postato mi sembra che le varie info presenti in ciascua riga siano separate dal TAB (\t) per cui ti basta splittare ciascuna riga utilizzando il TAB per avere le varie informazioni da inserire nel DB.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Si, però purtroppo c'è anche tra un dato e l'altro... La versione originale è questa, l'avevo aggiustata perchè è orrenda...
    ACURA INTEGRA Coupé 1.5

    01.85 - 12.90

    63

    85

    1488

    D15A1

    Coupé
    ACURA INTEGRA Coupé 1.6

    01.85 - 12.90

    74

    100

    1590

    D16A3

    Coupé
    ACURA INTEGRA Coupé 1.6 i

    01.85 - 12.90

    88

    120

    1590

    D16A8

    Coupé

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.