利用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制作新闻系统的思路
Oct 09 PHP
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
php 各种应用乱码问题的解决方法
May 09 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
php HTML无刷新提交表单
Apr 05 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
解决laravel5.4下的group by报错的问题
Oct 16 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 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连接Oracle数据库
2006/10/09 PHP
PHP 采集程序中常用的函数
2009/12/09 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
Python中subprocess模块用法实例详解
2015/05/20 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Python定义函数实现累计求和操作
2020/05/03 Python
python 基于opencv操作摄像头
2020/12/24 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
大韩航空官方网站:Korean Air
2017/10/25 全球购物
2013年学期结束动员演讲稿
2014/01/07 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
最感人的道歉情书
2015/05/12 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers