Heim >Backend-Entwicklung >PHP-Tutorial >PHP 制作了一个计算器,出了点问题,求解!
这是我做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"<script>alert('请在localhost下创建文件夹txt,并在文件夹txt下创建3个文件,分别是caculator.txt <br /> caculator2.txt caculator3.txt 然后才能正常完成任务!');</script>";
}}
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……
版主大神啊...我还是刚开始学的...
求以后多多指教!