利用php+mysql来做一个功能强大的在线计算器

 更新时间:2010年10月12日 09:53:20   作者:  
有天在努力的搜索计算器,发现都是JavaScript,而且要一个个地点击,并且不能记录,输入计算式子时容易出错,于是就想了想该怎样才能让它好用点呢,能够用键盘直接输入。
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

找了很久,发现网上资料很少,于是想自己动手写,慢慢的发现问题多了,自己不怎么通算法,写一个计算式子短点还好,长了就挂了,再长点恐怕就要死机。

有一天做做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="http://9i0i.com/pic.php?p=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>

相关文章

  • ThinkPHP实现转换数据库查询结果数据到对应类型的方法

    ThinkPHP实现转换数据库查询结果数据到对应类型的方法

    这篇文章主要介绍了ThinkPHP实现转换数据库查询结果数据到对应类型的方法,涉及thinkPHP模型类操作及针对源码文件的相关修改方法,需要的朋友可以参考下
    2017-11-11
  • PHP框架laravel的.env文件配置教程

    PHP框架laravel的.env文件配置教程

    在之前的版本 Laravel 是使用 config 文件夹下的 php 文件来完成项目所需要的配置的,后面从大概从 5 开始就使用了 .env 来放置部分配置。那么下面这篇文章主要给大家介绍了关于PHP框架laravel的.env文件配置的相关资料,需要的朋友可以参考学习。
    2017-06-06
  • ThinkPHP设置禁止百度等搜索引擎转码(简单实用)

    ThinkPHP设置禁止百度等搜索引擎转码(简单实用)

    这篇文章主要介绍了ThinkPHP设置禁止百度等搜索引擎转码(简单实用)的相关资料,需要的朋友可以参考下
    2016-02-02
  • yii通过小物件生成view的方法

    yii通过小物件生成view的方法

    这篇文章主要介绍了yii通过小物件生成view的方法,简单列举分析了Yii小物件的使用技巧,需要的朋友可以参考下
    2016-10-10
  • CI框架入门之MVC简单示例

    CI框架入门之MVC简单示例

    这篇文章主要介绍了CI框架入门之MVC简单示例,分析了CI框架MVC架构的原理并结合实例形式演示了CI框架数据查询与显示功能的完整实现技巧,需要的朋友可以参考下
    2016-11-11
  • php 从一个数组中随机的取出若干个不同的数实例

    php 从一个数组中随机的取出若干个不同的数实例

    本文章向码农介绍php从一个不重复的数组中随机的取出若干个不同的元素,难点是防止在取数的时候出现已经取到过的情况(特别是取到最后),需要尽可能的降低碰撞,需要的朋友可以参考下
    2016-12-12
  • PHP使用递归按层级查找数据的方法

    PHP使用递归按层级查找数据的方法

    这篇文章主要介绍了PHP使用递归按层级查找数据的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • PHP处理会话函数大总结

    PHP处理会话函数大总结

    在PHP开发中,比起Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,PHP处理会话函数包括:session_start、session_register、session_is_registered、session_unregister、Session_destroy等等,这里详细介绍下php处理会话函数
    2015-08-08
  • php简单实现屏蔽指定ip段用户的访问

    php简单实现屏蔽指定ip段用户的访问

    这里给大家分享的是一个简单的使用php实现的屏蔽指定IP段的代码,非常的实用,有需要的小伙伴可以参考下。
    2015-04-04
  • 利用PHP和AJAX创建RSS聚合器的代码

    利用PHP和AJAX创建RSS聚合器的代码

    利用PHP和AJAX创建RSS聚合器的代码...
    2007-03-03

最新评论

?


http://www.vxiaotou.com