当前位置:Gxlcms > PHP教程 > PHP制作了一个计算器,出了点问题,求解!

PHP制作了一个计算器,出了点问题,求解!

时间:2021-07-01 10:21:17 帮助过:13人阅读

这是我做0输入的处理代码:

===============================================================

if($_POST['num0']){
$num=$_POST['num0'];
if(is_dir('txt')){
$open=fopen("txt/caculator.txt","r+");
if(is_file("txt/caculator.txt")){
$a=file_get_contents("txt/caculator.txt");
$e=(int)$a;
$b=$e."0";
echo $b;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
=================================================================
这是表单:
=================================================================









计算器


if(!is_dir('txt')){
if(!is_file("txt/caculator.txt")){
echo"";
}}
if($_POST['num0']){
$num=$_POST['num0'];
if(is_dir('txt')){
$open=fopen("txt/caculator.txt","r+");
if(is_file("txt/caculator.txt")){
$a=file_get_contents("txt/caculator.txt");
$e=(int)$a;
$b=$e."0";
echo $b;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字1的反应
if($_POST['num1']){
$num=$_POST['num1'];
if(is_dir('txt')){
$open=fopen("txt/caculator.txt","r+");
if(is_file("txt/caculator.txt")){
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}

if($_POST['num2']){
//单击数字2的反应
$num2=$_POST['num2'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num2;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字3的反应
if($_POST['num3']){

$num=$_POST['num3'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字4的反应
if($_POST['num4']){

$num=$_POST['num4'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字5的反应
if($_POST['num5']){

$num=$_POST['num5'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字6的反应
if($_POST['num6']){

$num=$_POST['num6'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字7的反应
if($_POST['num7']){

$num=$_POST['num7'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字8的反应
if($_POST['num8']){

$num=$_POST['num8'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字9的反应
if($_POST['num9']){

$num=$_POST['num9'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击 点 的反应
if($_POST['dot']){

$num=$_POST['dot'];

if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$findme= ".";
$pos=strpos($a, $findme);
if($pos==true){

file_put_contents("txt/caculator.txt",$a);
fclose($open);
}
else{
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
}
//单击选项C的反应
if($_POST['Clear']){


if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","w+");
$open;
$open=fopen("txt/caculator2.txt","w+");
$open2;
$open=fopen("txt/caculator3.txt","w+");
$open3;

}
}
}
//单击 ← 的反应
if($_POST['back']){
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$a=substr($a,0,-1);
file_put_contents("txt/caculator.txt",$a);
}
}
}
//单击+的反应
if($_POST['add']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$b="";
$c="+";
$a=file_get_contents("txt/caculator.txt");
file_put_contents("txt/caculator.txt",$b);
file_put_contents("txt/caculator2.txt",$a);
file_put_contents("txt/caculator3.txt",$c);
}
}

}
//单击-的反应
if($_POST['sub']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$b="";
$c="-";
$a=file_get_contents("txt/caculator.txt");
file_put_contents("txt/caculator.txt",$b);
file_put_contents("txt/caculator2.txt",$a);
file_put_contents("txt/caculator3.txt",$c);
}
}

}
//单击乘的反应
if($_POST['mul']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$b="";
$c="*";
$a=file_get_contents("txt/caculator.txt");
file_put_contents("txt/caculator.txt",$b);
file_put_contents("txt/caculator2.txt",$a);
file_put_contents("txt/caculator3.txt",$c);
}
}

}
//单击=的反应
if($_POST['equal']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$a=file_get_contents("txt/caculator.txt");
$b=file_get_contents("txt/caculator2.txt");
$c=file_get_contents("txt/caculator3.txt");
$nul="";
if($c=="+"){
$d=$b+$a;
}
if($c=="-"){
$d=$b-$a;
}
if($c=="*"){
$d=$a*$b;
}
if($c=="/"){
$d=$b/$a;
}
if($c=="%"){
$d=$b%$a;
}
if($c=="+"){
$d=$a+$b;
}
if($c=="√"){
$d=sqrt($a);
}
file_put_contents("txt/caculator.txt",$d);

}
}

}

以上是大部分代码,由于输入字符有限,关键代码贴出来了。

好多代码 你还是 直接说哪里出问题了吧 说关键的

你的问题在于:
if($_POST['num0']){
因为 $_POST['num0'] 等于 0,所以条件恒不成立。该分支不会进入!
应改作
if($_POST['num0'] == '0'){

你的程序设计的很不合理,需要做大幅度调整
文件操作函数的使用也欠妥
既然是用 file_get_contents、file_put_contents 读写文件,那么就不需要 fopen、fclose 再来做摆设了
file_put_contents 有一个 FILE_APPEND 参数可以附加内容到文件,而无需读出后人工追加

如果需要,可以你一个调整后的代码供参考

用AJAX,然后动态PHP编译就得了,实际把一大堆公司放进去计算好了。

你的问题在于:
if($_POST['num0']){
因为 $_POST['num0'] 等于 0,所以条件恒不成立。该分支不会进入!
应改作
if($_POST['num0'] == '0'){

你的程序设计的很不合理,需要做大幅度调整
文件操作函数的使用也欠妥
既然是用 file_get_contents、file_put_contents 读写文件,那么就不需要 fope……
版主大神啊...我还是刚开始学的...
求以后多多指教!

人气教程排行