<?php
function calculate($string) {
$input = $string;
$action = '';
$result = 0;
$currNumber = '';
else {
if ($action == '') $result = intval($currNumber); else {
switch ($action) {
case '+':
$result += intval($currNumber); break;
case '-':
$result -= intval($currNumber); break;
case '*':
$result *= $currNumber;
break;
case '/':
$result /= $currNumber;
break;
}
}
$action = $char;
$currNumber = '';
if ($action == '=') {
echo nl2br("done: \n {$input}{$result}"); }
}
// TEST echo nl2br("current number $currNumber | result $result | action $action \n\n");
}
}
calculate('100+12157097-214907/12505*21469-10=');
PD9waHAKbWJfaW50ZXJuYWxfZW5jb2RpbmcoJ3V0Zi04Jyk7CmZ1bmN0aW9uIGNhbGN1bGF0ZSgkc3RyaW5nKSB7CiAgICAkaW5wdXQgPSAkc3RyaW5nOwogICAgJGFjdGlvbiA9ICcnOwogICAgJHJlc3VsdCA9IDA7CiAgICAkY3Vyck51bWJlciA9ICcnOwoKICAgIGZvciAoJGkgPSAwOyAkaSA8IG1iX3N0cmxlbigkaW5wdXQpOyAkaSsrKSB7CiAgICAgICAgJGNoYXIgPSBtYl9zdWJzdHIoJGlucHV0LCAkaSwgMSk7CiAgICAgICAgaWYgKGlzX251bWVyaWMoJGNoYXIpKSAkY3Vyck51bWJlciAuPSAkY2hhcjsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYgKCRhY3Rpb24gPT0gJycpICRyZXN1bHQgPSBpbnR2YWwoJGN1cnJOdW1iZXIpOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHN3aXRjaCAoJGFjdGlvbikgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJysnOgogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ICs9IGludHZhbCgkY3Vyck51bWJlcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJy0nOgogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC09IGludHZhbCgkY3Vyck51bWJlcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJyonOgogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ICo9ICRjdXJyTnVtYmVyOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCAvPSAkY3Vyck51bWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGFjdGlvbiA9ICRjaGFyOwogICAgICAgICAgICAkY3Vyck51bWJlciA9ICcnOwogICAgICAgICAgICBpZiAoJGFjdGlvbiA9PSAnPScpIHsKICAgICAgICAgICAgICAgIGVjaG8gbmwyYnIoImRvbmU6IFxuIHskaW5wdXR9eyRyZXN1bHR9Iik7CiAgICAgICAgICAgICAgICBleGl0KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gVEVTVCBlY2hvIG5sMmJyKCJjdXJyZW50IG51bWJlciAkY3Vyck51bWJlciB8IHJlc3VsdCAkcmVzdWx0IHwgYWN0aW9uICRhY3Rpb24gXG5cbiIpOwogICAgfQp9CmNhbGN1bGF0ZSgnMTAwKzEyMTU3MDk3LTIxNDkwNy8xMjUwNSoyMTQ2OS0xMD0nKTs=