PHP从用户输入构建基本的计算器系统

时间:2010-02-17 01:21:14

标签: php regex

我想创建一个脚本,用户可以输入一个总和,例如4 ^ 5 +(56 + 2)/ 3或任何其他基本数学总和(无功能等)我将如何进行此操作?大概是正则表达式。有人能指出我正确的方向吗 - 我猜这不会太容易,所以我只想提一下从哪里开始,我会从那里开始。

3 个答案:

答案 0 :(得分:1)

看看这个:http://www.webcheatsheet.com/php/regular_expressions.php

这是正则表达式的一个很好的介绍,以及如何在PHP中使用它们。

是的,有人可以(并且可能会)只给你你需要的正则表达式,但如果你了解你的正则表达式是如何工作的,它会有很大的帮助。他们看起来很可怕,但真的不是那么糟糕......

答案 1 :(得分:0)

这不是我的代码,但有一个很棒的PHP代码段,可让您使用Google Calculator进行计算。因此,您只需使用常规/ FOIL表示法或其他任何内容输入您的查询(即“7 + 3”),它将返回结果。

http://www.hawkee.com/snippet/5812/

<?php

// Google calculator
function do_calculator($query){
    if (!empty($query)){
        $url = "http://www.google.co.uk/search?q=".urlencode($query);
        $f = array("Â", "<font size=-2> </font>", " &#215; 10", "<sup>", "</sup>");$t = array("", "", "e", "^", "");
        preg_match('/<h2 class=r style="font-size:138%"><b>(.*?)<\/b><\/h2>/', file_get_contents($url), $matches);
        if (!$matches['1']){
            return 'Your input could not be processed..';
        } else {
            return str_replace($f, $t, $matches['1']);
        }
    } else {
        return 'You must supply a query.';
        }
    }

?>

答案 2 :(得分:0)

简单的方法是使用eval()。但是,如果您接受来自Web表单的任意输入并在服务器上执行,则必须小心只接受有效的表达式。使用正则表达式。