[PHP5] Währung im String säubern und auslesen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] Währung im String säubern und auslesen?

    Hallo!

    Ich möchte verschiedene Strings die eine Zahl und ein Währungsymbol säubern und auslesen. Z.B. Folgendes:

    3.45 €, $ 3,45, €3.45 usw.

    Also Komma und Punkt sollten möglich sein, weiterhin auch verschiedene Währungssymbole.

    Vielen Dank für eure Hilfe!

    Gruß
    Roman

  • #2
    wo is dein ansatz?

    versuchs mal mit nem regulären ausdruck.

    mfg
    bugbuster
    tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
    documentation: php.net mysql.com framework.zend.com

    Die Nachtwache!

    Kommentar


    • #3
      Code:
      $price = preg_replace("^\D^" , '', $data->sheets[0]['cells'][$i][10]);
      allerdings gehen mir da auch die Punkte bzw. die Kommas flöten.

      Kommentar


      • #4
        regexp-evaluator.de da wird dir geholfen


        Wird das \D groß geschrieben, so kehrt sich seine Bedeutung um (das gilt übrigens für alle folgenden Kurzschreibweisen). \D steht also für alle Zeichen außer Ziffern, das entspricht der Angabe der Zeichenklasse [^0-9], die alle Ziffern ausschließt.
        tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
        documentation: php.net mysql.com framework.zend.com

        Die Nachtwache!

        Kommentar


        • #5
          Original geschrieben von Bugbuster
          regexp-evaluator.de da wird dir geholfen
          Code:
          preg_replace('~[^0-9\,\.]~'
          gibt es hierfür verbesserungvorschläge?
          Zuletzt geändert von Roman1983; 19.05.2007, 18:16.

          Kommentar


          • #6
            Original geschrieben von Roman1983
            gibt es hierfür verbesserungvorschläge?
            für 'ne halbe funktion
            zum ersetzen von "komma durch punkt" bzw. umgekehrt, kannst du auch str_replace( nutzen.

            Kommentar


            • #7
              Original geschrieben von 3DMax
              für 'ne halbe funktion
              zum ersetzen von "komma durch punkt" bzw. umgekehrt, kannst du auch str_replace( nutzen.
              es geht hier doch garnichts ums ersetzen, sondern um einen regulären ausdruck, der mit aus einem string lediglich zahlen, sowie komma oder punkt zurückliefert. Das hättest du auch gewußt, wenn du meinen anfangspost gelesen hättest.

              deshalb ist es auch egal, ob ich eine halbe funktion poste oder eine ganze, es geht doch lediglich um den RegExp ausdruck. :-)

              Gruß
              Roman

              Kommentar


              • #8
                Original geschrieben von Roman1983
                es geht hier doch garnichts ums ersetzen, sondern um einen regulären ausdruck, der mit aus einem string lediglich zahlen, sowie komma oder punkt zurückliefert.
                sorry, hellsehen kann ich auch tagsüber ganz schlecht. nur wenn du preg_replace() benutzt, gehe ich auch davon aus, dass du etwas ersetzen möchtest.

                Kommentar


                • #9
                  Original geschrieben von 3DMax
                  sorry, hellsehen kann ich auch tagsüber ganz schlecht. nur wenn du preg_replace() benutzt, gehe ich auch davon aus, dass du etwas ersetzen möchtest.
                  okay, das war mein fehler, hätte wirklich die ganze funktion posten sollen.

                  Schönen Abend noch.

                  Gruß
                  Roman

                  Kommentar


                  • #10
                    Original geschrieben von Roman1983
                    Schönen Abend noch.
                    dto.

                    Kommentar


                    • #11
                      Hab ein ähnliches Problem

                      Hier erstmal meine Funktion:
                      PHP-Code:
                      function get_price($text)
                      {
                          
                      $text str_replace(" "" "$text);
                          
                      $words explode(" "$text);
                          foreach (
                      $words as $item)
                          {
                              
                      $item str_replace(","""$item);
                              
                      $wfirst substr($item01);
                              if(
                      $wfirst == "\$")
                              {
                                  
                      $item2 substr($item1);
                                  
                      $theprice number_format($item22'.''');
                              }
                          }        
                          return 
                      $theprice;

                      Bisher erfolgt eine Ausgabe der Währung nur wenn ich im Kontex die $ Währung vorsetze. Dann hab ich mich mal ran gesetzt um das ganze als € aufzubringen mein Weg war wie folgt:
                      PHP-Code:
                      function get_price($text)
                      {
                          
                      $text str_replace("€""€"$text);
                          
                      $words explode(" "$text);
                          foreach (
                      $words as $item)
                          {
                              
                      $item str_replace(","""$item);
                              
                      $wfirst substr($item01);
                              if(
                      $wfirst == "\€")
                              {
                                  
                      $item2 substr($item1);
                                  
                      $theprice number_format($item22'.''');
                              }
                          }        
                          return 
                      $theprice;

                      null Funktion. In die Datenbank wird immer € geschrieben normal sollte es so funktionieren. Wo liegt mein Fehler?

                      Kommentar

                      Lädt...
                      X