angenommen ich habe den String "3*3+6/(1+2)*1+1" Wie könnte ich es schaffen dass "1" rauskommt(falls ich richtig gerechnet habe )???
Ankündigung
Einklappen
Keine Ankündigung bisher.
ausrechnen einer Formel
Einklappen
Neue Werbung 2019
Einklappen
X
-
Stichworte: -
-
Excel sagt es kommt 12 raus ...
Wie könnte ich es schaffen dass "1" rauskommt
Verstehe ich nu nicht.
Kommentar
-
rein mathematisch gesehen kannst du den string ja auch zerlegen
und so in einzelnen schritten deine formel ausrechnen.
PHP-Code:<?php
// linker teil der gleichung
$schritt1 = 3*3 ;
$schritt2 = $schritt1 + 6 ;
//rechter teil der gleichung
$schritt3 = 1+2 ;
$schritt4 = 1+1 ;
$schritt5 = $schritt3 / $schritt4 ;
// linker tei durch rechter teil
$ergebnis = $schritt2 / $schritt5 ;
?>[FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
— The best things in life aren't things[/FONT]
Kommentar
-
ich sag ja "wenn ic richtig gerecghnet habe
und der string ist leider nicht immer gleich...
kennt vielleicht wer ein script, der solche formeln zerlegt, oder zumindest eine möglichkeit sowas zu bewerkstelligen?
Kommentar
-
Wie könnte ich es schaffen dass "1" rauskommt(falls ich richtig gerechnet habe Wink )Excel sagt es kommt 12 raus ...
Gruß
phpfan
Kommentar
-
und der string ist leider nicht immer gleich...
Verstehe dein Anliegen immer weniger.
Kommentar
-
Ich gehe einfach mal davon aus: Du hast dich verrechnet und willst einfach nur das korrekte Ergebnis der Formel als Zahl haben.
In unserem Fall also 12.
Sollte das dein Anliegen sein, geht das wohl so am schnellsten, schätze ich...:
PHP-Code:<?php
$string = "3*3+6/(1+2)*1+1";
eval ("\$int = $string;");
echo $int;
?>
Kommentar
-
-
Zitat von Waqeval sollte man aber erst verwenden, nachdem man sichergestellt hat, dass in dem String nur Zahlen und +-*/() stehen.
Zitat von phpdummi@phpfan:
Intel inside Idoit Outside
Gruß
phpfan
Kommentar
-
Edit: ups, habe nicht gesehen, dass es noch eine zweite Seite gibt und das was ich geschrieben hab bereits sinngemäs gesagt wurde.
----------------------------------------
aber achtung! wenn der string von einem Benutzer eingegeben wird musst du den string vorher gründlich untersuchen!
Wäre der String bei Andreas Beispiel "1; unlink('einDateiName')"PHP-Code:<?php
$string = "1; unlink('einDateiName');"; // Vorher: "3*3+6/(1+2)*1+1";
eval ("\$int = $string;");
echo $int;
?>PHP-Code:<?php
$int = 1; unlink('einDateiName');
?>Water Wars - Jetzt anmelden: http://waterwars.de
Kommentar
-
PHP-Code:<?php
$string = "3*3+6/(1+2)*1+1";
if(preg_match("/^[1-9\+\-\*\/\(\)]+$/", $string)) {
eval ("\$int = $string;");
} else {
$int = 0;
}
?>
Kommentar
Kommentar