<?php
 
function calculate($expression) {
    $numArr = preg_split('#(\\+|\\*|-|/|%)#', $expression, -1, PREG_SPLIT_DELIM_CAPTURE
);  
        for($i = 0; count($numArr) > 1; $i++) {             switch ($numArr[$i]) {
                case '/':
                    $numArr[$i] = $numArr[$i - 1] / $numArr[$i + 1];
                    $i = 0;
                    break;
 
                case '*':
                    $numArr[$i] = $numArr[$i - 1] * $numArr[$i + 1];
                    $i = 0;
                    break;
 
                case '%':
                    $numArr[$i] = $numArr[$i - 1] % $numArr[$i + 1];
                    $i = 0;
                    break;
 
                default:
                    break;
            }    
        }
 
        for($i = 0; count($numArr) > 1; $i++) {             switch ($numArr[$i]) {
                case '+':
                    $numArr[$i] = $numArr[$i - 1] + $numArr[$i + 1];
                    $i = 0;
                    break;
 
                case '-':
                    $numArr[$i] = $numArr[$i - 1] - $numArr[$i + 1];
                    $i = 0;
                    break;
 
                default:
                    break;
            }    
 
            if(count($numArr) == 1) {             break;
        }
    }
    return $numArr[0];
}
 
echo calculate("200+100/100-2011");
				PD9waHAKCmZ1bmN0aW9uIGNhbGN1bGF0ZSgkZXhwcmVzc2lvbikgewogICAgJG51bUFyciA9IHByZWdfc3BsaXQoJyMoXFwrfFxcKnwtfC98JSkjJywgJGV4cHJlc3Npb24sIC0xLCBQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUpOwoKICAgICAgICBmb3IoJGkgPSAwOyBjb3VudCgkbnVtQXJyKSA+IDE7ICRpKyspIHsKICAgICAgICAgICAgc3dpdGNoICgkbnVtQXJyWyRpXSkgewogICAgICAgICAgICAgICAgY2FzZSAnLyc6CiAgICAgICAgICAgICAgICAgICAgJG51bUFyclskaV0gPSAkbnVtQXJyWyRpIC0gMV0gLyAkbnVtQXJyWyRpICsgMV07CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG51bUFyclskaSArIDFdKTsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkbnVtQXJyWyRpIC0gMV0pOwogICAgICAgICAgICAgICAgICAgICRudW1BcnIgPSBhcnJheV92YWx1ZXMoJG51bUFycik7CiAgICAgICAgICAgICAgICAgICAgJGkgPSAwOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBjYXNlICcqJzoKICAgICAgICAgICAgICAgICAgICAkbnVtQXJyWyRpXSA9ICRudW1BcnJbJGkgLSAxXSAqICRudW1BcnJbJGkgKyAxXTsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkbnVtQXJyWyRpICsgMV0pOwogICAgICAgICAgICAgICAgICAgIHVuc2V0KCRudW1BcnJbJGkgLSAxXSk7CiAgICAgICAgICAgICAgICAgICAgJG51bUFyciA9IGFycmF5X3ZhbHVlcygkbnVtQXJyKTsKICAgICAgICAgICAgICAgICAgICAkaSA9IDA7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGNhc2UgJyUnOgogICAgICAgICAgICAgICAgICAgICRudW1BcnJbJGldID0gJG51bUFyclskaSAtIDFdICUgJG51bUFyclskaSArIDFdOwogICAgICAgICAgICAgICAgICAgIHVuc2V0KCRudW1BcnJbJGkgKyAxXSk7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG51bUFyclskaSAtIDFdKTsKICAgICAgICAgICAgICAgICAgICAkbnVtQXJyID0gYXJyYXlfdmFsdWVzKCRudW1BcnIpOwogICAgICAgICAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSAgICAKICAgICAgICAgICAgaWYoIShwcmVnX21hdGNoKCcjKFxcKnwvfCUpIycsIGltcGxvZGUoIiIsICRudW1BcnIpKSkpIGJyZWFrOyAgICAKICAgICAgICB9CgogICAgICAgIGZvcigkaSA9IDA7IGNvdW50KCRudW1BcnIpID4gMTsgJGkrKykgewogICAgICAgICAgICBzd2l0Y2ggKCRudW1BcnJbJGldKSB7CiAgICAgICAgICAgICAgICBjYXNlICcrJzoKICAgICAgICAgICAgICAgICAgICAkbnVtQXJyWyRpXSA9ICRudW1BcnJbJGkgLSAxXSArICRudW1BcnJbJGkgKyAxXTsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkbnVtQXJyWyRpICsgMV0pOwogICAgICAgICAgICAgICAgICAgIHVuc2V0KCRudW1BcnJbJGkgLSAxXSk7CiAgICAgICAgICAgICAgICAgICAgJG51bUFyciA9IGFycmF5X3ZhbHVlcygkbnVtQXJyKTsKICAgICAgICAgICAgICAgICAgICAkaSA9IDA7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGNhc2UgJy0nOgogICAgICAgICAgICAgICAgICAgICRudW1BcnJbJGldID0gJG51bUFyclskaSAtIDFdIC0gJG51bUFyclskaSArIDFdOwogICAgICAgICAgICAgICAgICAgIHVuc2V0KCRudW1BcnJbJGkgKyAxXSk7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG51bUFyclskaSAtIDFdKTsKICAgICAgICAgICAgICAgICAgICAkbnVtQXJyID0gYXJyYXlfdmFsdWVzKCRudW1BcnIpOwogICAgICAgICAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSAgICAKCiAgICAgICAgICAgIGlmKGNvdW50KCRudW1BcnIpID09IDEpIHsKICAgICAgICAgICAgJG51bUFyciA9IGFycmF5X3ZhbHVlcygkbnVtQXJyKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICRudW1BcnJbMF07Cn0KCmVjaG8gY2FsY3VsYXRlKCIyMDArMTAwLzEwMC0yMDExIik7