PHP 复杂计算代码

想实现这样一个功能比如有用户输入一串计算式如1+7×(8-2)通过文件处理后直接反馈准确数值给用户现在的问题就是用户输入计算式中的运算符位数不定,而且数字的位数也不一定求... 想实现这样一个功能
比如有用户输入一串计算式 如1+7×(8-2)
通过文件处理后直接反馈准确数值给用户
现在的问题就是用户输入计算式中的运算符位数不定,而且数字的位数也不一定
求思路,秋解决 求源码 要是有相应的公共类就更好了~~~
展开
 我来答
本逸春vL
2013-11-11 · TA获得超过1567个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:647万
展开全部

可以使用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;
没有响应m2
2013-11-10 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3445万
展开全部
这个用侍斗php不太好实现 但是颂谈胡野拦用javascript的话超级简单...
var a = eval("1+7×(8-2)");
这样就能得出结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式