1

郵便で渡された数式を解くのが好きです。例えば。:

<form name="form1" method="post" action="">
  <label for="f">F&oacute;rmula: </label>
  <input type="text" name="f" id="f" value="<?=$_POST['f']?>">
  <input type="submit" name="button" id="button" value="Submit">
</form>

$f = $_POST['f']; //Suppose the user typed: (A + B) * C as formula

(A + B) * Cを介して渡されたこの式を使用し$_POSTて、数学的な計算を行います

A = 1; B = 2; C = 3;
$x = (A + B) * C // here the formula would be
$_POST[f] = (A + B) * C
echo $ x;
4

1 に答える 1

-2

正規表現または文字列操作関数を使用して、文字列として解析できます。

サードパーティのクラスを使用できます。stackoverflowで次の質問を確認してください。phpで文字列として渡された数式を評価する方法

クラスを使用しない簡単な方法は、すべての変数を解析することです。たとえば、すべての大文字を検索し、evalを使用して関数を解析するよりも、対応する数字に置き換えます。

$formula = "A * B / (C + 3)";
$A = 3;
$B = 4;
$C = 2;

$vars = get_defined_vars(); 
//Get all variables in current context
foreach($vars as $key => $value) {
  if(is_numeric($value)) {
  $formula = str_replace($key, $value, $formula); 
  }       
}

eval('$result=' . $formula . ';');
echo '$result=' . $result . "<br />";

PS:評価括弧内の悪意のあるコードに注意してください。

于 2013-03-03T16:18:51.657 に答える