<?php

/**

* version:1.0

* author:于燚

* 2012年3月23日21:21:30

* 函数功能:计算任意加减乘除数学表达式的结果

* eg:echo jisuan("2/5-9+8*3/4");//输出结果2.6

* 更多功能正努力中......

*

* */

function jisuan($str){

$pat1="/\+/";

$pat2="/-/";

$pat3="/\*/";

$pat4="/\//";

$sum=0;

if(preg_match($pat1,$str)){

$arr=explode("+",$str);

foreach($arr as $val){

$pat="/[\/\*\+-]/";

if(preg_match($pat,$val)){

$val=jisuan($val);

}

$sum+=$val;

}

}else if(preg_match($pat2,$str)){

$arr=explode("-",$str);

foreach($arr as $key => $val){

$pat="/[\/\*]/";

if(preg_match($pat,$val)){

$val=jisuan($val);

}

if($key==0){

$sum=$val;

}else{

$sum-=$val;

}

}

}else if(preg_match($pat3,$str)){

$arr=explode("*",$str);

foreach($arr as $key => $val){

$pat="/[\/]/";

if(preg_match($pat,$val)){

$val=jisuan($val);

}

if($key==0){

$sum=$val;

}else{

$sum*=$val;

}

}

}else{

$arr=explode("/",$str);

foreach($arr as $key => $val){

if($key==0){

$sum=$val;

}else{

if($val==0){

header("Content-Type:text/html;charset=utf-8");

exit("表达式不合法!!!");

}

$sum/=$val;

}

}

}

return $sum;

}

echo jisuan("2/5-9+8*3/4");


?>