PHP. - .
, , . , .
eval. , , . eval docs . :
: , eval - , . , .
<?php
$test = '2+3*pi';
$test = preg_replace('/\s+/', '', $test);
$number = '(?:\d+(?:[,.]\d+)?|pi|π)';
$functions = '(?:sinh?|cosh?|tanh?|abs|acosh?|asinh?|atanh?|exp|log10|deg2rad|rad2deg|sqrt|ceil|floor|round)';
$operators = '[+\/*\^%-]';
$regexp = '/^(('.$number.'|'.$functions.'\s*\((?1)+\)|\((?1)+\))(?:'.$operators.'(?2))?)+$/';
if (preg_match($regexp, $q))
{
$test = preg_replace('!pi|π!', 'pi()', $test);
eval('$result = '.$test.';');
}
else
{
$result = false;
}
?>