[Funktion] String Rechner

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

  • [Funktion] String Rechner

    Hallo,

    Ich brauche Hilfe!
    Ich möchte gern ein PHP Script (am besten in einer Function verpackt) das es ermöglicht einen String zu übergeben und das Rechenergebnis zu erhalten.

    Sprich:

    $Rechnung = "12+3*(4+5-6)"; // usw...

    $summe = rechnen($Rechnung);

    // Ergebnis: $summer = "58"

    Bitte Bitte helft mir!
    Danke!

  • #2
    PHP-Code:
    function rechnen($param)
    {
      return eval(
    $param); 

    ungetestet
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      Nein das funktioniert nicht!

      Wäre zu schön um Wahr zu sein!
      Zuletzt geändert von Findsch; 04.08.2005, 09:42.

      Kommentar


      • #4
        aber so gehts:
        PHP-Code:
        $str "(1*3)+(65-7)"

        function 
        rechnen($param)
        {
         return eval(
        "return (".$param.");");
        }

        echo 
        rechnen($str); 
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Herzlichen Dank!!

          es geht!!!!!

          Kommentar


          • #6
            Vorsicht!

            Aus der Doku:
            http://de2.php.net/eval

            eval -- Wertet einen String aus, als wäre er PHP-Code

            Wenn du die Eingabe nicht prüfst, könnte jemand statt der Rechenaufgabe auch "phpinfo()" oder schlimmer noch "exec(rm -r \)" bzw. "exec(del c:\*.*)" eingeben ;-)

            Gruß Marian
            Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word, Excel
            http://www.lernpilot.de/wbt/

            Kommentar


            • #7
              keine Sorge, das will ich ja gar nicht!

              Viel Komplizierter!

              Ich mache für unsere Firma eine Datenbank zur Stromberechnung.

              Ich will in der Datenbankt Virtuelle Zähler anlegen die sich aus Realen Zählern ergeben, aber eben durch Rechnungen.

              Ich ersetze die in der Dankenbank vorhandenen Variablen durch die Werte und dann lass ich diesen String rechnen!

              Kommentar


              • #8
                Du baust aus Datenbankwerten also einen String zusammen - so in der Art:
                PHP-Code:
                $str "{$row[0]} + {$row[1]}"
                und eval'st diesen?

                Warum nicht gleich
                PHP-Code:
                $ergebnis $row[0] + $row[1]; 
                ?

                Kommentar


                • #9
                  Weil die Variablen in einer Datenbank stehen.

                  Also von einer Tabelle wird ein String geladen mit einer Formel drinn. Dies ist die Rechnung!

                  Je nach Datensätze von einer anderen Tabelle können die Werte einen anderen Wert haben. Diese Tabelle wird zuerst gelanden und in Variablen geschrieben z.B.

                  for (n=0;$n < mysql_num_rows($sql);$n++){

                  $var[]=mysql_result($sql,$n,0);
                  }

                  so. und in der anderen Tabelle stehen die Rechnungen so drinn:

                  $string_von_anderen_Tabelle="($var[3]+$var[5])/$var[9]" //usw.

                  und dies muss errechtet werden, aber zuerst müssen die Werte eingesetzt werden.

                  Kommentar

                  Lädt...
                  X