Simsso: Rechnung in Variable

Hallo,
wenn ich eine Variable habe, die den Inhalt $Rechnung = "5+2+6+12" hat, gibt es dann eine Möglichkeit, mit PHP das ausgerechnete Ergebnis anzeigen zu lassen. Ich schaffe es nämlich nicht, das ausrechnen zu lassen, da man ja nicht einfach "5" + "2" + ... machen kann.
LG

  1. Hello,

    wenn ich eine Variable habe, die den Inhalt $Rechnung = "5+2+6+12" hat, gibt es dann eine Möglichkeit, mit PHP das ausgerechnete Ergebnis anzeigen zu lassen. Ich schaffe es nämlich nicht, das ausrechnen zu lassen, da man ja nicht einfach "5" + "2" + ... machen kann.

    Das beste wäre ein Parser für Rechenaufgaben. Da gibt es eine Klasse "rpn", die in verschiedenen Repositories in verschiedenen Versionen gepflegt wird.

    http://www.phpclasses.org/package/4078-PHP-Evaluate-reverse-polish-notation-expressions.html
    http://activedeveloper.info/rpn-calculator-in-php
    http://pear.php.net/package/Math_RPN/docs/latest/math/_Math_RPN-1.1.2---Math---RPN.php.html

    Die einfachste aber gefährlichste Lösung wäre eval()
    http://www.php.net/manual/en/function.eval.php

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hi,
      danke für die schnelle Antwort!
      Ich denke ich nehme mal die Technik, verstehe aber nicht, wie die einzubauen ist.

      Die einfachste aber gefährlichste Lösung wäre eval()
      http://www.php.net/manual/en/function.eval.php

      <?php
      $Ergebnis = eval($_POST["Aufgabe"]);
      echo $Ergebnis;
      ?>
      Kannst du schreiben, wie das genau geht?
      Gruß

      1. Hello,

        Ich denke ich nehme mal die Technik, verstehe aber nicht, wie die einzubauen ist.

        Mach lieber 'was vernünftiges und nimm eine von den RPM-Klassen. Es gibt auch noch mehr; Du musste nur mal selber danach suchen.

        Die einfachste aber gefährlichste Lösung wäre eval()
        http://www.php.net/manual/en/function.eval.php
        <?php
        $Ergebnis = eval($_POST["Aufgabe"]);

        Good Night Server!

        echo $Ergebnis;
        ?>

        Kannst du schreiben, wie das genau geht?

        Das übernehmen von Fremddaten in ein eval() darfst Du bitte nie-nie-nie-nie machen, ok?
        Dann kannst Du deinen Server gleich einem Spammer schenken.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. Hi!

        Genau das ist gefährlich:

        » $Ergebnis = eval($_POST["Aufgabe"]);  
        
        > echo $Ergebnis;
        
        

        Traue niemals externen Daten! Sieh Dir mal die von Tom verlinkten Ressourcen zum RPN-Parser an.

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
      3. Moin!

        <?php
        $Ergebnis = eval($_POST["Aufgabe"]);
        echo $Ergebnis;
        ?>

        Um Gottes Willen! Tu das nie! nie! nie!

        <form method="post"
        <input type="text" name="Aufgabe" value="system('less /etc/passwd')" />
        <input type="submit" value="Mach, was due nicht sollst aber willst"/>
        </form>

        Durch derlei Schwachmatismus sind schon Webserver von "großen und angesehenen Firmen" gehackt worden.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

    2. Hello,

      http://pear.php.net/package/Math_RPN/docs/latest/math/_Math_RPN-1.1.2---Math---RPN.php.html

      diese hier habe ich mal selber ausprobiert und einige der darin noch enthaltenen Fehler beseitigt. Sie hat aber mMn immer noch kleine Probleme.

      Zum Ausprobieren:
      http://selfhtml.bitworks.de/scripts/calculate/

      Quelltext unter:
      http://selfhtml.bitworks.de/snippets/calculator/

      Die einfachste aber gefährlichste Lösung wäre eval()
      http://www.php.net/manual/en/function.eval.php

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de