利用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 5.0对象模型深度探索之对象复制
Mar 27 PHP
php 远程关机操作的代码
Dec 05 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
如何设置mysql允许外网访问
Jun 04 PHP
解析php类的注册与自动加载
Jul 05 PHP
php多文件上传实现代码
Feb 20 PHP
php实现httpRequest的方法
Mar 13 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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读取xml实例代码
2010/01/28 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python实现端口转发器的方法
2015/03/13 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
ASP.NET中的身份验证有那些
2012/07/13 面试题
新闻系毕业生推荐信
2013/11/16 职场文书
中专生自我鉴定范文
2013/12/19 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
工作说明书范文
2014/05/07 职场文书
担保贷款承诺书
2015/04/30 职场文书
运动会广播稿20字
2015/08/19 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
Go 语言中 20 个占位符的整理
2021/10/16 Golang
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers