ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
551
551
EMPFEHLEN
-
Hi Leute,
gibt es die möglichkeit, eine als String eingelesene (per textfeld) mathematsche Funktion zu berechnen?
als beispiel hab ich da die Funktion: 8 / (4 - pow(5,2)).
Diese würde ich beispielsweise gerne in das Textfeld eingeben, sodass mir PHP das ergebniss berechnet.
(Hinterher wollte ich das dann so optimieren, dass man die Variable X einsetzt, die per replace() ersetzt werden kann in der funktion, und damit kann man dann werte aus für einen bestimmten wertebereich errechnen..)
Thx für Hilfen
Infernus
-
Eine bequeme, aber in der Form ganz und gar nicht empfehlenswerte Möglichkeit wäre die Verwendung von eval():
Das Problem dabei ist, dass dadurch beliebiger PHP-Code ausgeführt werden kann, was natürlich eine kritische Sicherheitslücke darstellt.PHP-Code:<?php
$funktion = $_GET['funktion'];
$ergebnis = eval('return ('.$funktion.');');
?>
Daher sollte man den String entweder vorher entsprechend überprüfen oder gleich einen mathematischen Parser implementieren.„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
Hi, ich hab ja nicht viel Ahnung, aber wenn man den String per Typumwandlung irgendwie in eine Float oder Integrer Zahl umwandelt, dann müsste man damit doch auch rechnen können.
-
ja, aber in dem String stand nich nur ein Wert, sondern eine komplette funktion.
Vielen dank, das klappt wunderbar mit dem eval()
-
Hast du denn auch eine vorherige Überprüfung des Eingabestrings eingebaut?
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
Nein, bisher noch nicht.
Würde dich dann doch direkt mal fragen, weil mit dem "Pattern Syntax" doch noch mein Probleme habe:
wie lasse ich per preg_match() nachprüfen ob nur bestimmte symbole im übergebenen String enthalten sind?
(das wären dann 0-9, "-", "+", "/", "^", ":", "|" und "x")
kleine fragen schaffe ich damit noch, aber bei solchen verzweifle ich immer schnell
-
PHP-Code:
<?php
if( preg_match('#^[^0-9+\-/^:|x\s]+$#', trim($string)) && strlen(trim($string)) > 0 ) {
echo 'Es wurdee ein oder mehrere unzulässige Zeichen benutzt!';
}
?>Markus Wulftange
-
13.11.05 00:10 #8
Kann ja sein, dass mich zu später Stunde schon die Müdigkeit überfallen hat, aber fehlt in dem Ausdruck nicht ein Asterisk als Multiplikationszeichen, Gumbo?
-
Ich habe mich lediglich an Infernus’ Vorgaben gehalten und die sehen dieses Zeichen nicht vor.Kann ja sein, dass mich zu später Stunde schon die Müdigkeit überfallen hat, aber fehlt in dem Ausdruck nicht ein Asterisk als Multiplikationszeichen, Gumbo?Markus Wulftange
Ähnliche Themen
-
Mathematische Funktionen
Von TraphiX im Forum PHPAntworten: 2Letzter Beitrag: 20.07.10, 20:42 -
Mathematische Funktionen Library
Von KarlSoost im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 2Letzter Beitrag: 25.06.10, 12:51 -
Mathematische Funktionen berechnen
Von Avedo im Forum .NET CaféAntworten: 7Letzter Beitrag: 13.09.09, 15:22 -
mathematische Funktionen in C++ (integegrieren, ableiten, Funktionen aufstellen...)
Von busenbach im Forum C/C++Antworten: 2Letzter Beitrag: 04.09.07, 07:19 -
Mathematische Funktionen mit PHP?
Von Slater im Forum PHPAntworten: 2Letzter Beitrag: 12.02.04, 14:24





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren