3v4l.org

run code in 300+ PHP versions simultaneously
<?php $post = array( '$a' => "Ana", '$b' => "George" ); $string = '$a has (2 * 10 + 5) Euro and (10 + 2) cents from $b'; $regex = '#\((([^()]+|(?R))*)\)#'; if (preg_match_all($regex, $string ,$matches)) { $eqs = $matches[1]; foreach($eqs as $frm) { $frm_eval = eval("return $frm;"); $string = str_replace('(' . $frm . ')', $frm_eval, $string); } echo strtr($string, $post); } else { //no parenthesis echo $string; }

preferences:
38.08 ms | 402 KiB | 5 Q