利用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 相关文章推荐
用PHP调用数据库的存贮过程
Oct 09 PHP
PHP新手上路(十三)
Oct 09 PHP
php 获取远程网页内容的函数
Sep 08 PHP
php中http_build_query 的一个问题
Mar 25 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
简单的php+mysql聊天室实现方法(附源码)
Jan 05 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 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
PHP与javascript的两种交互方式
2006/10/09 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
javascript判断office版本示例
2014/04/11 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
如何用Python绘制3D柱形图
2020/09/16 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
租赁协议书范本
2014/04/22 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
降价通知函
2015/04/23 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
使用HttpSessionListener监听器实战
2022/03/17 Java/Android