利用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中在数据库中保存Checkbox数据(1)
Oct 09 PHP
怎么使 Mysql 数据同步
Oct 09 PHP
php中并发读写文件冲突的解决方案
Oct 25 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
php限制文件下载速度的代码
Oct 20 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
laravel配置Redis多个库的实现方法
Apr 10 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实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
Python制作Windows系统服务
2017/03/25 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
python对csv文件追加写入列的方法
2019/08/01 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
人资专员岗位职责
2014/04/04 职场文书
捐资助学倡议书
2014/04/15 职场文书
分公司任命书
2014/06/06 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
Python软件包安装的三种常见方法
2022/07/07 Python