<?php
mb_internal_encoding('utf-8');
function calculate($string) {
    $input = $string;
    $action = '';
    $result = 0;
    $currNumber = '';

    for ($i = 0; $i < mb_strlen($input); $i++) {
        $char = mb_substr($input, $i, 1);
        if (is_numeric($char)) $currNumber .= $char;
        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}");
                exit();
            }
        }
        // TEST echo nl2br("current number $currNumber | result $result | action $action \n\n");
    }
}
calculate('100+12157097-214907/12505*21469-10=');