利用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&amp;&amp;mysql)五
Oct 09 PHP
discuz7 phpMysql操作类
Jun 21 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
Aug 11 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 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
CodeIgniter基本配置详细介绍
2013/11/12 PHP
php事务处理实例详解
2014/07/11 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
vuex 使用文档小结篇
2018/01/11 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
python动态性强类型用法实例
2015/05/09 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python制作mysql数据迁移脚本
2019/01/01 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
一些Solaris面试题
2013/03/22 面试题
数控专业应届生求职信
2013/11/27 职场文书
医学生自荐信范文
2013/12/03 职场文书
军训自我鉴定
2014/01/22 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
一般党员对照检查材料
2014/09/24 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
行政上诉状范文
2015/05/23 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL