PHP 复杂计算代码
想实现这样一个功能比如有用户输入一串计算式如1+7×(8-2)通过文件处理后直接反馈准确数值给用户现在的问题就是用户输入计算式中的运算符位数不定,而且数字的位数也不一定求...
想实现这样一个功能
比如有用户输入一串计算式 如1+7×(8-2)
通过文件处理后直接反馈准确数值给用户
现在的问题就是用户输入计算式中的运算符位数不定,而且数字的位数也不一定
求思路,秋解决 求源码 要是有相应的公共类就更好了~~~ 展开
比如有用户输入一串计算式 如1+7×(8-2)
通过文件处理后直接反馈准确数值给用户
现在的问题就是用户输入计算式中的运算符位数不定,而且数字的位数也不一定
求思路,秋解决 求源码 要是有相应的公共类就更好了~~~ 展开
2个回答
展开全部
可以使用eval做到。
参考地址:http://php.net/manual/zh/function.eval.php
要注意的是,eval是把字符串当PHP代码来执行唯迟的,而计算式是用户输入的,这里会遇到安全问题,所以必须对用户数据的字符串进行过滤,以防止用户提交恶意代码对系统进行渗透。
// 取得用户输入的计算式
$exp = '1+7×(8-2)';
// 对加减乘除进行替换
$exp = str_replace('×', '*', $exp); // 乘号可用×
$exp = str_replace('÷', '/', $exp); // 除号指橘李可用÷
// 对括号进行中文支持
$exp = str_replace('(', '(', 伍昌$exp);
$exp = str_replace(')', ')', $exp);
// 对计算式进行安全过滤
$exp = preg_replace('#[^+\-*/\(\).0-9]#', '', $exp);
// 使用eval计算并返回结果
$res = eval("return {$exp};");
// 结果输出
echo $exp.'='.$res;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询