问答文章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
为什么我的《英雄传说:空之轨迹SC》中“艾尔贝周游道的通缉魔兽”不见... 空之轨迹sc 托兰特平原的通缉魔兽二号 我是2兆的宽带 原先的下载速度达到260KB/S 重装下系统最高还不到70K... 为什么两兆的线下载速度只有80KB/S 我们家宽带是网通的办理了2兆的可是下载速度70~90KB 原因 一九八三年大年三十是什么星座 请教1984年2月1日出生而且阴历生日正好是大年三十,请问我岁是多大 万岱鸿腾国际商贸有限公司送表真的吗 云南岱鸿商贸有限公司怎么样? 重庆鸿岱科技有限公司怎么样? 梦见水里飘走一个婴儿然后我自己就了什么意思 php计算器怎么做(windows下哪种) 今年经常梦见孩子在清澈的水上漂流活者梦见找不见了 食品类的英语单词 乌鸡怎么煲汤才好喝? 梦见江中捞到婴儿:在大河中涉水忽见一婴漂浮于水面,急忙捞起,心情大悅,而见婴儿腿根部有一胎记。不知 床地下晒谷阴阴干是什么意思 做凯格尔运动时下面夹出水算敏感吗?每次大概连续夹一二百下就感觉那里热热的,肌肉有些累但感觉蛮好蛮舒 如何在Excle中筛选出错误数据? 为什么我碰到小便的地方,会很舒服,还会流水? 我qq绑定的手机号不用了 现在无法登录? EXCEL中如何用函数计算筛选后分类汇总中符合条件的单元格数量?为什么我的公式有些正确有的结果不正确? 我24出差跟一个30多已婚的男同事发生关系了当时被他摸的很舒服就没有拒绝现在有点后悔我该怎么办 手机号换了,qq无法登陆? 意淫出水射出来比较好吗? 和小三做时,进了好几次为什么进不去那!她不是处 EXCEL表格中筛选后为什么只有一部分对 下面就不对了 常见食物类英语单词大全 QQ为什么登不上 密码错误 绑定的手机号被修改 为什么少妇说怎么还没出水 梦见亲戚家生的小孩,却是一个我不认识的小孩,掉到水里,预示着现实当中的什么? 用php做个计算器(加减乘除),两个文本框输入数字,第三个输出结果并_百度... 梦见自已儿子在海上玩漂流? 周公解梦大全查询梦40岁女人梦见自己流鼻我梦见有一个小孩掉进很深的水里,我叫人救小孩那人伸手捞不出? 自由人生白金卡升级后原卡注销吗 php制作计算器的问题 梦见婴儿落水救上来好象没命了 乌鸡炖什么汤好 中国银行信用卡升级了白金卡以前的那个信用卡怎么处理,还能用吗? php 只设计加法计算器 乌鸡用什么煲汤好喝? 信用卡升级为白金卡后会不会在变回原来的卡 我的信用卡升级白金卡我没开通旧卡还可以用吗? 水泥地面自流平到底是怎么做的?看完视频你就知道了 我今天刚收到中信银行信用卡升级到白金卡!旧卡还能用吗? 普通水泥自流平怎么做? 建行金卡升级为白金卡 刚下载了一个游戏,里面的DATA格式都是pkg,应该怎样打开?不是安装 建行龙卡信用卡升级为白金卡了,开卡以后原来的卡还能用么 建行信用卡升级为白金卡,原信用卡是否会作废?两张卡卡号不同