2016-04-05 4 views
1

数式を実行するためにeval()を使用する方法がありますか?また、ユーザーの入力にevalを安全に使用する方法はありますか?PHPを使って数式を実行するためのeval()の代替手段

$string = "1+2-3*4/5"; 
$answer = eval($answer = $string); 
+0

入力を検証してから計算します。いくつかの答えを見てください:http://stackoverflow.com/q/18880772/3933332 – Rizier123

+0

またはいくつかの[パーサ](https://github.com/ircmaxell/php-math-parser/tree/master/lib/PHPMathParser) – Federkun

+0

私はすでにあなたの最後の質問 – Rizier123

答えて

1

おそらく、指定された文字列から数学と数値だけを選択してから、評価を行うことができます。

preg_match_all("/[0-9()+\-*\/.]/", $string, $output_array); 
$operation = implode("", $output_array[0]); 
eval($operation);