利用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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
PHP中的Session对象如何使用
Sep 25 PHP
php 的反射详解及示例代码
Aug 25 PHP
php 三大特点:封装,继承,多态
Feb 19 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP代码加密的方法总结
Mar 13 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 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
小程序实现密码输入框
2020/11/16 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python入门篇之列表和元组
2014/10/17 Python
Linux下Python获取IP地址的代码
2014/11/30 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
详解python算法之冒泡排序
2019/03/05 Python
Python requests设置代理的方法步骤
2020/02/23 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
浅谈关于html5中图片抛物线运动的一些心得
2018/01/09 HTML / CSS
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
实现向右循环移位
2014/07/31 面试题
店长助理岗位职责
2013/12/13 职场文书
家长会学生家长演讲稿
2013/12/29 职场文书
蓝颜请假条
2014/04/11 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
银行求职信模板
2015/03/20 职场文书
小学教师节活动总结
2015/03/20 职场文书
初中信息技术教学反思
2016/02/16 职场文书