利用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
Nov 25 PHP
PHP读取MySQL数据代码
Jun 05 PHP
php for 循环语句使用方法详细说明
May 09 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 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 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
浅谈js中的闭包
2015/03/16 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
js实现烟花特效
2020/03/02 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
让Python代码更快运行的5种方法
2015/06/21 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python pandas模块基础学习详解
2019/07/03 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
jupyter notebook实现显示行号
2020/04/13 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
婚礼答谢宴主持词
2014/03/14 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书