<?php

mb_internal_encoding("UTF-8");
header('Content-Type: text/plain; charset=UTF-8');

$input = '10.512/2.5*3.500+2-100='; // use dot as decimal mark
$inputLength = mb_strlen($input);

$number = 0;
$result = 0;
$op = '';

for ($i = 0; $i < $inputLength; $i++) {

    $char = mb_substr($input, $i, 1);

    if ($char == '*' || $char == '/' || $char == '+' || $char == '-' || $char == '=') {
        
        $number = floatval($number);

        echo "op=[$op], result=[$result], number=[$number], char=[$char]\n";

        if (empty($op)) {
            $result = $number;
        }

            switch ($op) {
                case '*':
                    $result = $result * $number;
                    break;
                case '+':
                    $result = $result + $number;
                    break;
                case '-':
                    $result = $result - $number;
                    break;
                case '/':
                    $result = $result / $number;
                    break;
            }

        $op = $char;

        if ($op == '=') {
            echo "Ответ: $input$result";
            die();
        }

        $number = 0;
    } elseif (is_numeric($char) || $char == '.') {
        $number .= $char;
    } else {
        echo "Неверный символ: '$char'\n";
    }
}