Ankündigung

Einklappen
Keine Ankündigung bisher.

Zahlen in String berechnen

Einklappen

Neue Werbung 2019

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

  • Zahlen in String berechnen

    Hallo,

    ich habe Strings, welche wie folgt aufgebaut sind:
    "90/100/120" oder "90" oder "90-150"

    Bei dem ersten Beispiel können es auch nur zwei oder auch zehn Zahlen sein.

    Nun sollte mit jeder Zahl einzeln eine Berechnung durchgeführt werden und in dem String ersetzt.

    Gehen wir davon aus, dass jede Zahl durch 1.5 (/1.5) geteil werden soll.
    Im ersten Beispiel wäre es dann: "60/66.66/80"
    2. "60"
    3. "60-100"

    Ich bekomme das leider nicht hin.
    Wie muss ich das machen?

    Viele Grüße
    Andreas

  • #2
    Du zerlegst mit preg_split deine Strings in numerische und nichtnumerische Anteile. Mit den numerischen Teilen führst du deine Berechnungen durch und setzt das ganze wieder Zusammen.

    Kommentar


    • #3
      Ich glaube so könnte das gehen.
      Ich war mir mit den Nachkommastellen nicht so im Klaren also habe ich einfach mal nach 2 Stellen gerundet.
      PHP-Code:
      <?php
      $teststring 
      = <<<EOD
      "90/100/120" oder "90" oder "90-150"
      EOD;


      $pattern '/\d+(\.\d+)?/u';    
      $line preg_replace_callback(
         
      $pattern,
          function (
      $matches) {
              
      $var $matches[0]/1.5;
              
      $var round($var2);
              return 
      $var;
          },
          
      $teststring
      );

      echo 
      $line// "60/66.67/80" oder "60" oder "60-100"
      ?>

      Kommentar


      • #4
        Super, danke.
        Auf meinem Server mit PHP 5.3 funktioniert es, aber auf meinem Testserver mit PHP 5.2 nicht.
        Besteht die Möglichkeit, dass ich es unter PHP 5.2 zum laufen bekomme?

        Viele Grüße
        Andreas

        Kommentar


        • #5
          Sowohl PHP 5.3. als auch PHP 5.2. sind end of life, also nicht mehr unterstützt, da würd ich gar nichts mehr zum Laufen bringen drauf.

          Kommentar


          • #6
            5.2 ist seit 2011 (7 Jahre!) tot. Wozu soll das gut sein?

            http://php.net/eol.php

            Kommentar


            • #7
              PHP 5.2 ist nur auf dem Lokal-Rechner.
              Auf dem Live-System ist es in Kürze PHP7.

              Auf dem Lokal-Rechner soll es "nur" laufen.
              Mir ist schon klar, dass es EOL ist, aber ich scheue da die Umstellung

              Kommentar


              • #8
                Installiere eine ältere Version von Wamp. Version 2.4 hat PHP 5.4 und läuft auch auf Windows XP wenn du Windows hast, allemal besser als das was du jetzt hast. Für Windows 7 nimmst du dann Version 2.5.
                Linux wirst du wohl kaum haben, denn da stellt sich das Problem ja nicht.

                Kommentar


                • #9
                  Ich habe derzeit XAMPP drauf.
                  Hier würde die Version 1.8.2.6 noch auf XP laufen.
                  Hat Wamp Vorteile gegenüber XAMPP?

                  Kommentar


                  • #10
                    Nein.

                    Kommentar


                    • #11
                      Den größten Vorteil an WAMP fande ich immer, dass man per Mausklick zwischen den PHP Versionen wechseln konnte. Das ging soweit ich weiß früher nicht. Jetzt benutze ich eigentlich nur noch Docker zum entwickeln, da hat man die ganzen Probleme nicht mehr

                      Kommentar


                      • #12
                        Ok, danke.
                        Dann werde ich XAMPP installieren, da ich hier ja schon die Einstellungen habe und ich diese dann nur noch in die neue Config übernehmen kann.

                        Kommentar


                        • #13
                          PHP-Code:
                          $pattern '/\d+(\.\d+)?/u'
                          Du kannst das Pattern auch allgemeiner/einfacher formulieren.
                          PHP-Code:
                          $pattern '~\b\d+\b~'
                          Bringt das selbe Ergebnis wie oben, geht auf Zahlen zwischen boundaries (Wortgrenzen). http://www.rexegg.com/regex-boundari...l#wordboundary
                          The string "()()" is not palindrom but the String "())(" is.

                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Mein Like geht an protestix . Sein Pattern berücksichtigt auch Dezimalzahlen und selbst so etwas wie
                            PHP-Code:
                            $teststring "90/100.2a120"
                            wird richtig behandelt.

                            Kommentar


                            • #15
                              Ich habe jetzt XAMPP 1.8.2-6-vc9 installiert und es läuft auch soweit.
                              Aber es ist keine php_pspell.dll in der php/ext Verzeichnis vorhanden und die von der alten Version funktioniert nicht.
                              Hat jemand eine Idee, was ich da machen kann?

                              Kommentar

                              Lädt...
                              X