Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    aiuto espressione regolare

    Slave,


    ho una stringa del tipo "bla bla bla - 8000.00 euro".
    Vorrei prendere la cifra e sostituirla dopo avergli fatto dei calcoli.
    Mi serve un qualcosa del tipo: prendi dopo l'ultimo trattino, leva lo spazio, vai poi avanti e leva spazio euro" poi esegui il calcolo e sostituisci il valore.



    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    $valore = "bla bal bla - 8000";
    $valore = explode('-', $valore);
    $valore[0];
    $valore[1];

    $valore[0]; sarà bla bla bla
    $valore[1]; sarà 8000

  3. #3
    Originariamente inviato da semolino
    $valore = "bla bal bla - 8000";
    $valore = explode('-', $valore);
    $valore[0];
    $valore[1];

    $valore[0]; sarà bla bla bla
    $valore[1]; sarà 8000
    non propriamente se provi a fare un
    var_dump($a) te ne accorgi...

    sulla base del tuo ragionamento potresti pero' castare così:
    $a=(float)$valore[1];

    in questo modo taglieresti anche lo spazio e il segno euro che mi sembra aver capito siano presenti nella stringa...
    Il metodo però è al quanto...come dire...'sporchetto'..quindi secondo me ti conviene aspettare che qualcuno te ne suggerisca uno migliore..
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  4. #4
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Non avevo badato aagli spazi e credevo che l'euro fosse parte di esto esterno alla stringa.
    Se si tratta di soldi, che senso ha metterlo all'interno del campo? basta stampare euro dopo aver estratto il prezzo, no?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    855

    sono spiegato male

    Ciao ragazzi, mi sono spiegato male.
    Ho bisogno, tramite regex e non explode, di isolare la parte finale di una stringa.
    Purtroppo, la mia stringa contiene alla fine un importo numerico. Tralasciando gli oscuri motivi che hanno determinato tale scelta ambigua, devo comunque prendere l'importo in una variabile, levarci l'iva, e rimetterlo nella stringa. Ninet'altro? VVoVe:

    La stringa è del tipo:

    "Latte Bianco Buonissimo - Modello bla bla bla - 8000.00 euro IVA inclusa"

    Quindi, una cosa del tipo: "prendi dal secondo trattino, leva lo spazio, isola l'importo, leva lo spazio, leva "euro", leva lo spazio, leva "IVA inclusa" e metti il tutto in una variabile.
    Poi, scorpora l'iva e rimetti l'importo per ottenere:

    "Latte Bianco Buonissimo - Modello bla bla bla - 7000.00"

    Lo so che si tratta di una cosa strana ma lo vogliono così...



  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    "Latte Bianco Buonissimo - Modello bla bla bla - 8000.00 euro IVA inclusa"

    se questi "nomi" sono tutti uguali, cioe' testo - testo - cifra euro iva inclusa basta l'explode iniziale. Sapendo l'esatta posizione dei valori, li dividi, elabori la cifra con i vari calcoli e ricomponi una variabile unendo solo i pezzi che ti servono. Esegui un altro explode per il terzo dato quindi ma li dividi per spazzi, cosi' ti ritrovi 800.00 da solo. Puoi fargli un trim(); sul dato che corrisponde a 800.00 e sei sicuro che ti leva gli spazzi prima e dopo la cifra. Se la virgola e' un'problema, esegui un ulteriore explode sull 800.00 tramite punto. ris= 800 00 . Un'po' incasinato cosi' ma se vuoi provare...

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.