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

Discussione: Gestione del testo

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    11

    Gestione del testo

    Ciao a tutti! Ho un problema che non riesco a risolvere.
    Su un file di testo che viene generato automaticamente, ho diverse righe tutte con questa struttura:

    questo è il titolo Roma:Italia EUR 23,008


    Vorrei creare tre array, uno chiamato titoli[] uno chiamato quantità[] e l'altro chiamato prezzi[].

    1)In titoli[1] vorrei avere "questo è il titolo"
    2)In prezzi[1] vorrei avere "23,00"
    3)In quantità[1] vorrei avere "8"

    Igorando Roma:Italia EUR.

    Tenete conto che quella riga è seguita da tante altre righe strutturate nello stesso modo, e i vari titoli,prezzi,quantità dovranno venir memorizzati in titoli[2...3...4], prezzi[2...3...4] etc.


    Lo scopo è quello di creare un database mysql con tutti i titoli, le quantità e i prezzi, in modo da poter ordinare le righe per quantità o per prezzo.


    Esempio file di testo:

    questo è il titolo1 Roma:Italia EUR 13,008
    questo è il titolo2 Roma:Italia EUR 33,003
    questo è il titolo3 Roma:Italia EUR 3,004
    questo è il titolo4 Roma:Italia EUR 23,001


    spero di essere stato abbastanza chiaro

    ringrazio anticipatamente chi mi dedicherà un po' di tempo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    quello che chiedi e' un po laborioso....si puo' fare...solo che devi smanettare un bel po con le stringhe.
    Mio consiglio e' ....riesci a farti generare un file formattato diversamente? Intendo formattato in un modo omogeneo, magari separando i futuri campi da un simbolo (anche uno spazio)
    Ti consiglio di guardarti i metodi split() , explode(), implode() e i metodi delle stringhe http://it2.php.net/manual/it/ref.strings.php

    Nella situazione in cui ti trovi adesso con il metodo split prenderei tutto quello separato da spazi, poi se sei sicuro che saranno sempre cosi le stringhe, nella terza cella andrai a lavorare la stringa prendendo il carattere sesto(il tuo numero otto)
    ciao

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Dopo aver trovato delle regole generiche puoi usare le espressioni regolari.

    Tipo prendere tutto quello che sta dopo eur, o tutto quello che sta prima di italia.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    11
    vi ringrazio. purtroppo è proprio come temevo. Per la memorizzazione su un database mysql, vi sembra corretto l'uso di un array? cioè creare gli array e poi passare quelli a mysql?

    Non riesco a trovare come mettere ad esempio i vari titoli , in campi differenti dell'array.

    cioè dovrei concatenere le stringhe usando: $stringa . $stringa?


    grazie ancora

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    allora....torniamo a monte del problema... Cosa devi fare?
    Intemdo proprio tutto...non lo specifico discorso dell'array..
    Quello che penso e' che hai dei form, o dei file o non so cosa, che ti mandano dei dati. Questi dati li vuoi salvare sul db.
    Spiega meglio cio' da cui parti e dove vuoi arrivare che una soluzione la troviamo.

    per rispondere alla tua domanda, se vuoi procedere sulla tua strada , con i vari split e substr lavori le stringhe , le spezzi e poi prendendo proprio cella[0], cella[1], cella[2] hai i campi che ti servono.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    11
    La fonte dei dati è una file html, scritto quindi in codice html. Io da quello devo prendere alcune informazioni e memorizzarle in un database in modo da poterle ordinare e compierci eventuali operazioni. La pagina da html su cui ci sono le informazioni non è mia e non ho modo di modificarla.

    Scarico la pagina con wget e la elaboro con il php.
    Dopo vari html strip etc arrivo ad avere un file di testo con tutte le mie informazioni ($contents). Il passo successivo è quello di memorizzare le informazioni in modo intelligente per poi portarle al database.Per fare ciò pensavo a degli array, ma posso sbagliarmi.

    sono grato a chi a voglia di aiutarmi. grazie.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova a vedere se questo può andare:
    Codice PHP:
    <?php
    $str 
    "questo è il titolo Roma:Italia EUR 23,008 ";
    $strExp explode("EUR",$str);
    $price trim($strExp[1]);
    $prezzi substr($price,0,strlen($price)-1);
    $quantita = (int)substr($price,-1,1);

    //ricerca titolo
    $expTit explode(":",$str);

    $pos strrpos($expTit[0], " ");   
    echo 
    "parse : ".substr($expTit[0], 0$pos 1)."
    "
    ;
    echo 
    $prezzi." qnt : ".$quantita;
    ?>
    magari, anzi sicuramente, ci saranno modi migliori con le reg_ex, ma te lo posto lo stesso

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    11
    pure le "a" senza "h"..ottimo passare dal php all'italiano può essere dura , forse dovrei passare dal php al letto.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    11
    ciao ken84, ho provato la tua soluzione, credo sia perfetta. Ora cerco di implementarlo al fatto che le stringhe sono un su file di testo e soprattutto sono più di una. accetto sempre suggerimenti. grazie ancora

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    11
    dimenticavo di dire che ho una variabile $contents dove copio l'intero documento:

    $filename = "data.txt";
    $handle = fopen($filename, "r+");
    $contents = fread($handle, filesize($filename));
    fclose($handle);



    data.txt è il file html che importo.

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.