<?php
$input = '10.5+1.5/5*10=';
//Регулярка для поиска в $input числа, которые разделены математическими знаками
$regexpSearchNumbers = '/[+]|-|[*]|\\/|=/';
//Создаем массив с числами
$numbers = preg_split($regexpSearchNumbers, $input, 0, PREG_SPLIT_NO_EMPTY
); //Регулярка для поиска математических знаков, которые разделены цифрами
$regexpSearchMathOperators = '/[0-9]+[.]*[0-9]*/';
//Создаем массив с математическими операторами. Помним, что по условиям регулярки, 0-й элемент будет пустым, если
//первое число положительное, и будет содержать '-', если первое число отрицательное
$mathOperators = preg_split($regexpSearchMathOperators, $input); //Преобразуем элементы массива $numbers в float
foreach ($numbers as &$n) {
}
//Проверяем, положительное или отрицательное первое число
if ($mathOperators[0] == "-") {
$result = $numbers[0] * (-1);
} else $result = $numbers[0];
//Последовательно разбираем математические действия
for ($i = 0; $i <= count($mathOperators); $i++) { if ($mathOperators[$i + 1] == '+') {
$result = $result + $numbers[$i + 1];
} elseif ($mathOperators[$i + 1] == '-') {
$result = $result - $numbers[$i + 1];
} elseif ($mathOperators[$i + 1] == '*') {
$result = $result * $numbers[$i + 1];
} elseif ($mathOperators[$i + 1] == '/') {
$result = $result / $numbers[$i + 1];
} elseif ($mathOperators[$i + 1] == '=') {
break;
}
}
PD9waHAKCgokaW5wdXQgPSAnMTAuNSsxLjUvNSoxMD0nOwovL9Cg0LXQs9GD0LvRj9GA0LrQsCDQtNC70Y8g0L/QvtC40YHQutCwINCyICRpbnB1dCDRh9C40YHQu9CwLCDQutC+0YLQvtGA0YvQtSDRgNCw0LfQtNC10LvQtdC90Ysg0LzQsNGC0LXQvNCw0YLQuNGH0LXRgdC60LjQvNC4INC30L3QsNC60LDQvNC4CiRyZWdleHBTZWFyY2hOdW1iZXJzID0gJy9bK118LXxbKl18XFwvfD0vJzsKLy/QodC+0LfQtNCw0LXQvCDQvNCw0YHRgdC40LIg0YEg0YfQuNGB0LvQsNC80LgKJG51bWJlcnMgPSBwcmVnX3NwbGl0KCRyZWdleHBTZWFyY2hOdW1iZXJzLCAkaW5wdXQsIDAsIFBSRUdfU1BMSVRfTk9fRU1QVFkpOwovL9Cg0LXQs9GD0LvRj9GA0LrQsCDQtNC70Y8g0L/QvtC40YHQutCwINC80LDRgtC10LzQsNGC0LjRh9C10YHQutC40YUg0LfQvdCw0LrQvtCyLCDQutC+0YLQvtGA0YvQtSDRgNCw0LfQtNC10LvQtdC90Ysg0YbQuNGE0YDQsNC80LgKJHJlZ2V4cFNlYXJjaE1hdGhPcGVyYXRvcnMgPSAnL1swLTldK1suXSpbMC05XSovJzsKLy/QodC+0LfQtNCw0LXQvCDQvNCw0YHRgdC40LIg0YEg0LzQsNGC0LXQvNCw0YLQuNGH0LXRgdC60LjQvNC4INC+0L/QtdGA0LDRgtC+0YDQsNC80LguINCf0L7QvNC90LjQvCwg0YfRgtC+INC/0L4g0YPRgdC70L7QstC40Y/QvCDRgNC10LPRg9C70Y/RgNC60LgsIDAt0Lkg0Y3Qu9C10LzQtdC90YIg0LHRg9C00LXRgiDQv9GD0YHRgtGL0LwsINC10YHQu9C4Ci8v0L/QtdGA0LLQvtC1INGH0LjRgdC70L4g0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUsINC4INCx0YPQtNC10YIg0YHQvtC00LXRgNC20LDRgtGMICctJywg0LXRgdC70Lgg0L/QtdGA0LLQvtC1INGH0LjRgdC70L4g0L7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUKJG1hdGhPcGVyYXRvcnMgPSBwcmVnX3NwbGl0KCRyZWdleHBTZWFyY2hNYXRoT3BlcmF0b3JzLCAkaW5wdXQpOwovL9Cf0YDQtdC+0LHRgNCw0LfRg9C10Lwg0Y3Qu9C10LzQtdC90YLRiyDQvNCw0YHRgdC40LLQsCAkbnVtYmVycyDQsiBmbG9hdApmb3JlYWNoICgkbnVtYmVycyBhcyAmJG4pIHsKICAgICRuID0gZmxvYXR2YWwoJG4pOwp9Ci8v0J/RgNC+0LLQtdGA0Y/QtdC8LCDQv9C+0LvQvtC20LjRgtC10LvRjNC90L7QtSDQuNC70Lgg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0L/QtdGA0LLQvtC1INGH0LjRgdC70L4KaWYgKCRtYXRoT3BlcmF0b3JzWzBdID09ICItIikgewogICAgJHJlc3VsdCA9ICRudW1iZXJzWzBdICogKC0xKTsKfSBlbHNlICRyZXN1bHQgPSAkbnVtYmVyc1swXTsKCi8v0J/QvtGB0LvQtdC00L7QstCw0YLQtdC70YzQvdC+INGA0LDQt9Cx0LjRgNCw0LXQvCDQvNCw0YLQtdC80LDRgtC40YfQtdGB0LrQuNC1INC00LXQudGB0YLQstC40Y8KZm9yICgkaSA9IDA7ICRpIDw9IGNvdW50KCRtYXRoT3BlcmF0b3JzKTsgJGkrKykgewogICAgaWYgKCRtYXRoT3BlcmF0b3JzWyRpICsgMV0gPT0gJysnKSB7CiAgICAgICAgJHJlc3VsdCA9ICRyZXN1bHQgKyAkbnVtYmVyc1skaSArIDFdOwogICAgfSBlbHNlaWYgKCRtYXRoT3BlcmF0b3JzWyRpICsgMV0gPT0gJy0nKSB7CiAgICAgICAgJHJlc3VsdCA9ICRyZXN1bHQgLSAkbnVtYmVyc1skaSArIDFdOwogICAgfSBlbHNlaWYgKCRtYXRoT3BlcmF0b3JzWyRpICsgMV0gPT0gJyonKSB7CiAgICAgICAgJHJlc3VsdCA9ICRyZXN1bHQgKiAkbnVtYmVyc1skaSArIDFdOwogICAgfSBlbHNlaWYgKCRtYXRoT3BlcmF0b3JzWyRpICsgMV0gPT0gJy8nKSB7CiAgICAgICAgJHJlc3VsdCA9ICRyZXN1bHQgLyAkbnVtYmVyc1skaSArIDFdOwogICAgfSBlbHNlaWYgKCRtYXRoT3BlcmF0b3JzWyRpICsgMV0gPT0gJz0nKSB7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KdmFyX2R1bXAoJHJlc3VsdCk7