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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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!

    Comment


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

      Comment


      • #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!

        Comment


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

          Comment


          • #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.

            Comment


            • #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

              Comment


              • #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.

                Comment


                • #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

                  Comment


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

                    Comment


                    • #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?

                      Comment

                      Working...
                      X