问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php计算器怎么做

发布网友 发布时间:2022-04-29 15:35

我来回答

2个回答

热心网友 时间:2022-05-10 15:11

<html>
<head>
<title>运算</title>
</head>
<body>
运算步骤:
<?php
$content=$_POST["content"];
if($content!=""){
run($content);
}
//去括号
function run($content){
$j=0;
for($i=0;$i<strlen($content);$i++){
if($content{$i}=="("){
$j=$i;
}
else if($content{$i}==")"){
$left=substr($content,0,$j);
$right=substr($content,$i+1,strlen($content)-$i);
$indexvalue=substr($content,$j+1,$i-$j-1);
getResult($indexvalue);
run($left.getValue().$right);
break;
}
if($i==strlen($content)-1){
getResult($content);
echo "<br>运算结果:".getValue();
break;
}
}
}
//运算
function getOne($one,$two,$char){
$result;
switch ($char) {
case "+":
$result=$one+$two;
break;
case "-":
$result=$one-$two;
break;
case "*":
$result=$one*$two;
break;
case "/":
$result=$one/$two;
break;
}print($one.$char.$two."=".$result." ");
return $result;
}
//递归运算
function getResult($content){
$j=0;//存储加减号位置
$array;//存储加减号
$char;//存储加减号位置
for($i=0;$i<strlen($content);$i++){
if($content{$i}=="+" || $content{$i}=="-" || $content{$i}=="*" || $content{$i}=="/" ){
if($i!=0){
$array[$j]=$i;
$char[$j]=$content{$i};
$j++;
}
}
}
if(count($char)==1){
$one=substr($content,0,$array[0]);
$two=substr($content,$array[0]+1,strlen($content)-$array[0]);
$result=getOne($one,$two,$char[0]);
setValue($result);
}else{
for($i=0;$i< count($char);$i++){
if($char[0]=="+" || $char[0]=="-"){
if($char[1]=="+" || $char[1]=="-"){
$one=substr($content,0,$array[0]);
$two=substr($content,$array[0]+1,$array[1]-$array[0]-1);
$result=getOne($one,$two,$char[0]);
$right=substr($content,$array[1],strlen($content)-$array[1]);
getResult($result.$right);
break;
}else if($char[1]=="*" || $char[1]=="/"){
$one=substr($content,$array[0]+1,$array[1]-$array[0]-1);
$left=substr($content,0,$array[0]+1);
if($char[2]==""){
$two=substr($content,$array[1]+1,strlen($content)-$array[1]);
$result=getOne($one,$two,$char[1]);
getResult($left.$result);
break;
}else{
$two=substr($content,$array[1]+1,$array[2]-$array[1]-1);
$result=getOne($one,$two,$char[1]);
$right=substr($content,$array[2],strlen($content)-$array[2]);
getResult($left.$result.$right);
break;
}
}
}else if($char[0]=="*" || $char[0]=="/"){
$one=substr($content,0,$array[0]);
$two=substr($content,$array[0]+1,$array[1]-$array[0]-1);
$result=getOne($one,$two,$char[0]);
$right=substr($content,$array[1],strlen($content)-$array[1]);
getResult($result.$right);
break;
}
}
}
}
$value;
//得到结果
function getValue(){
global $value;
return $value;
}
//存储结果
function setValue($value1){
global $value;
$value=$value1;
}
?>
<form action="999999999.php" method="post">
<?php
echo "<input type=text name=content value=".$content.">";
?>
<input type="submit" value=" 计 算 " >
</form>
</body>
</html>

热心网友 时间:2022-05-10 16:29

慕课网上有教程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 梦见水里飘走一个婴儿然后我自己就了什么意思 php计算器怎么做(windows下哪种) 今年经常梦见孩子在清澈的水上漂流活者梦见找不见了 食品类的英语单词 乌鸡怎么煲汤才好喝? 梦见江中捞到婴儿:在大河中涉水忽见一婴漂浮于水面,急忙捞起,心情大悅,而见婴儿腿根部有一胎记。不知 床地下晒谷阴阴干是什么意思 做凯格尔运动时下面夹出水算敏感吗?每次大概连续夹一二百下就感觉那里热热的,肌肉有些累但感觉蛮好蛮舒 如何在Excle中筛选出错误数据? 为什么我碰到小便的地方,会很舒服,还会流水? 我qq绑定的手机号不用了 现在无法登录? EXCEL中如何用函数计算筛选后分类汇总中符合条件的单元格数量?为什么我的公式有些正确有的结果不正确? 我24出差跟一个30多已婚的男同事发生关系了当时被他摸的很舒服就没有拒绝现在有点后悔我该怎么办 手机号换了,qq无法登陆? 意淫出水射出来比较好吗? 和小三做时,进了好几次为什么进不去那!她不是处 EXCEL表格中筛选后为什么只有一部分对 下面就不对了 常见食物类英语单词大全 QQ为什么登不上 密码错误 绑定的手机号被修改 为什么少妇说怎么还没出水 梦见亲戚家生的小孩,却是一个我不认识的小孩,掉到水里,预示着现实当中的什么? 用php做个计算器(加减乘除),两个文本框输入数字,第三个输出结果并_百度... 梦见自已儿子在海上玩漂流? 周公解梦大全查询梦40岁女人梦见自己流鼻我梦见有一个小孩掉进很深的水里,我叫人救小孩那人伸手捞不出? 自由人生白金卡升级后原卡注销吗 php制作计算器的问题 梦见婴儿落水救上来好象没命了 乌鸡炖什么汤好 中国银行信用卡升级了白金卡以前的那个信用卡怎么处理,还能用吗? php 只设计加法计算器 乌鸡用什么煲汤好喝? 信用卡升级为白金卡后会不会在变回原来的卡 我的信用卡升级白金卡我没开通旧卡还可以用吗? 水泥地面自流平到底是怎么做的?看完视频你就知道了 我今天刚收到中信银行信用卡升级到白金卡!旧卡还能用吗? 普通水泥自流平怎么做? 建行金卡升级为白金卡 刚下载了一个游戏,里面的DATA格式都是pkg,应该怎样打开?不是安装 建行龙卡信用卡升级为白金卡了,开卡以后原来的卡还能用么 建行信用卡升级为白金卡,原信用卡是否会作废?两张卡卡号不同