利用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 相关文章推荐
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
php 使用array函数实现分页
Feb 13 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
PHP简单计算两个时间差的方法示例
Jun 20 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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 读取和修改大文件的某行内容的代码
2009/10/30 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
php object转数组示例
2014/01/15 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
如何通过python画loss曲线的方法
2019/06/26 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
Python3 读取Word文件方式
2020/02/13 Python
pytorch masked_fill报错的解决
2020/02/18 Python
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
linux面试题参考答案(5)
2014/09/01 面试题
银行毕业实习自我鉴定
2013/09/19 职场文书
医学专业五年以上个人求职信
2013/12/03 职场文书
毕业生自我鉴定
2013/12/04 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL