WiMu: Javascript-Math-Syntax in PHP-Math-Syntax umwandeln

Beitrag lesen

Hallo liebes Forum,

bei einem kleinen Projekt soll der Nutzer die Möglichkeit haben, in ein Textfeld mathematische Ausdrücke einzugeben, die dann von PHP weiterverarbeitet werden ... kurz und knapp, ca. so:

  
$test = $_POST['mein Eingabefeld'];  
@eval("\$test = $test;");  
if( !is_numeric( $test ) ) {  
    $test = false; // naja, halt irgendwas, wenn keine Zahl rauskommt  
}  
  
// usw.  

Nun wäre es ganz schick, wenn man z.B. für Potenzen nicht pow(x, y) eingeben müsste (das kann man von den Besuchern kaum erwarten), sondern wenn's mit x^y funktionierte - so macht es z.B. auch der Google-Calculator.
Klar könnte man das, was ich vorhabe auch komplett in javascript bauen ... aber die Rundungsfehler ... *seufz*

Bei ganz einfachen Potenzen und quick&dirty funktioniert's z.B. so:

  
$power = explode ( '^', $test );  
if(count($power) == 2) {  
    $test = "pow({$power[0]}, {$power[1]})";  
}  

Das geht natürlich nichtmehr bei Ausdrücken wie (3/2)^12 / (2/1)^7 bzw. pow(3/2, 12) / pow(2/1, 7) oder (5^1/2) / 2 bzw. pow(5, 1/2) / 2 (genau die beiden Beispiele bräuchte ich u. a.).
Fällt euch vielleicht ein kluger regulärer Ausdruck (oder auch mehrere) ein, mit dem man das bewerkstelligen könnte? Oder sonst vielleicht eine Idee?