利用php+mysql来做一个功能强大的在线计算器


Posted in PHP onOctober 12, 2010

找了很久,发现网上资料很少,于是想自己动手写,慢慢的发现问题多了,自己不怎么通算法,写一个计算式子短点还好,长了就挂了,再长点恐怕就要死机。

有一天做做mysql突然发现原来mysql功能这么强大,可以直接计算字符串。。。哈哈 这下可就高兴了。

代码还超级简单 就做了一个ajax的计算器

有式子错误提示 还可以时时显示输入的式子

有兴趣的朋友可以看看 更多的功能可以自己去开发

演示地址:http://www.jianlila.com/jsq.php

jquer.js自己去下载

jsq1.php

<?php 
//链接数据库的 
$db=mysql_connect("localhost","root","123"); 
header("Content-Type:text/html;charset=GB2312"); 
$str=iconv('utf-8','gbk',trim($_POST['t_ask'])); 
$str=str_replace(" ","",str_replace("\r\n","",$str)); 
$str=str_replace("(","(",$str); 
$str=str_replace(")",")",$str); 
/*三角函数替换*/ 
$str=preg_replace("/sin\((.*)\)/is","sin(\${1}*pi()/180)",$str);//替换sin 
$str=preg_replace("/cos\((.*)\)/is","cos(\${1}*pi()/180)",$str);//替换cos 
$str=preg_replace("/tan\((.*)\)/is","tan(\${1}*pi()/180)",$str);//替换tan 
$str=preg_replace("/cot\((.*)\)/is","1/tan(\${1}*pi()/180)",$str);//替换余切 
$str=preg_replace("/asin\((.*)\)/is","asin(\${1}/pi()*180)*180/pi()",$str);//反正弦 
$str=preg_replace("/acos\((.*)\)/is","acos(\${1}/pi()*180)*180/pi()",$str);//反余弦 
$str=preg_replace("/atan\((.*)\)/is","atan(\${1}/pi()*180)*180/pi()",$str);//替换反正切 
$sql="select ".$str ; 
$res=mysql_query($sql,$db) or die('<font color=red>你输入的式子有错误</font>'); 
$rs=mysql_fetch_array($res); 
echo $rs[0]; 
?>

jsq.php
<html> 
<head> 
<title>手写输入计算器</title> 
<meta name="keywords" content="在线计算器,输入式子直接计算,手写计算器" /> 
<meta name="description" content="在线计算器,手写输入计算器,输入式子直接计算" /> 
<script src="jquery.js" language="javascript"></script> 
<script language="javascript"> 
$(function(){ 
$("#t_ask").keyup(function(){ 
$.post( 
"jsq1.php", 
{ 
t_ask : $("#t_ask").val() 
},function(data,textStatus) 
{ 
$("#res").html(data); 
} 
); 
}); 
}); 
</script> 
</head> 
<body> 
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0"> 
<tr> 
<td align="center" height="40"><h2>手写输入计算器</h2></td> 
</tr> 
</table> 
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0"> 
<tr> 
<td height="34" align="center">在这里你可以手写式子计算哦,还不快试试! <a href="http://www.jianlila.com">返回首页</a></td> 
</tr> 
</table> <form method="post"> 
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0"> 
<tr> 
<td width="27%" align="right">计算式子:</td> 
<td width="73%"><textarea name="t_ask" cols="60" rows="6" id="t_ask"></textarea></td> 
</tr> 
<tr> 
<td height="23" align="right">=</td> 
<td><div id="res"></div></td> 
</tr> 
<tr> 
<td height="31" align="right"></td> 
<td><input type="button" name="tj" id="tj" value="按钮" /> 
<input type="reset" name="qc" id="qc" value="重置" /></td> 
</tr> 
</table> 
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0"> 
<tr> 
<td><p>说明:<br /> 
三角函数: 
<p>sin(60)正弦 cos(60)余弦 tan(60)正切 cot(60)余切 
<p>asin(0.5)反正弦 acos(0.5) 
反余弦 atan(0.5)反正切 
<p>abs(-1)=1绝对值 ceil(0.1)=1进一 
<p>指数对数 
<p>exp(float arg)// 计算 <strong>e</strong>(自然对数的底)的指数 
<p>log(10,100)=2//自然对数 pow(2,4)=16 指数 sqrt(4)=2平方根 
<p><br /> 
</td> 
</tr> 
</table> 
</form> 
</body> 
</html>
PHP 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
PHP遍历二维数组的代码
Apr 22 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
php实现singleton()单例模式实例
Nov 06 PHP
PHP统计目录大小的自定义函数分享
Nov 18 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 #PHP
php知道与问问的采集插件代码
Oct 12 #PHP
php笔记之常用文件操作
Oct 12 #PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 #PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 #PHP
PHP OPCode缓存 APC详细介绍
Oct 12 #PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 #PHP
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
nodejs实现简单的gulp打包
2017/12/21 NodeJs
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
Python备份Mysql脚本
2008/08/11 Python
python 常用的基础函数
2018/07/10 Python
python实现抽奖小程序
2020/04/15 Python
Python  Django 母版和继承解析
2019/08/09 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
个人简历自我鉴定
2013/10/11 职场文书
个人教师自我评价范文
2013/12/02 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
法定代表人授权委托书
2014/09/19 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
i7 6700处理器相当于i5几代
2022/04/19 数码科技