<?php 
	error_reporting(-1);
	mb_internal_encoding('utf-8');
	
	function calculate($expression) {
		$chars = preg_split('//u', $expression);
		$operators = array('+', '-', '*', '=', '/');
		$result = 0;
		$lastOperator = '+';
		$input = '';
		foreach ($chars as $char) {
			if (is_numeric($char) or (($char == '.') && (mb_substr_count($input, '.') == 0))) {
				$input .= $char;
			} elseif  (in_array($char, $operators)){
				switch ($lastOperator) {
					case '+':
						$result += floatval($input);
						break;
					case '-':
						$result -= floatval($input);
						break;
					case '*':
						$result *= floatval($input);
						break;
					case '/':
						$result /= floatval($input);
						break;
				}
				if ($char == '=') {
					return $result;
				}
				$input = '';
				$lastOperator = $char;
			}
		}
	}
	
	echo calculate('25.5 + 35.24.25 =');
?>