当前位置:首页 > PHP

php实现计算器程序

2026-01-29 07:08:35PHP

实现基础计算器功能

使用PHP创建一个简单的计算器程序,可以处理基本的加减乘除运算。以下是一个基于表单提交的实现方式:

<?php
$result = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    $operator = $_POST['operator'];

    switch ($operator) {
        case '+':
            $result = $num1 + $num2;
            break;
        case '-':
            $result = $num1 - $num2;
            break;
        case '*':
            $result = $num1 * $num2;
            break;
        case '/':
            $result = ($num2 != 0) ? $num1 / $num2 : "除数不能为零";
            break;
    }
}
?>

<form method="post" action="">
    <input type="number" name="num1" required>
    <select name="operator">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select>
    <input type="number" name="num2" required>
    <button type="submit">计算</button>
</form>

<?php if ($result !== ''): ?>
    <p>结果: <?php echo $result; ?></p>
<?php endif; ?>

增强版计算器功能

扩展计算器功能,支持更复杂的表达式计算和错误处理:

<?php
$result = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        $expression = $_POST['expression'];
        // 移除所有空格
        $expression = str_replace(' ', '', $expression);

        // 安全验证
        if (!preg_match('/^[0-9+\-*\/.()]+$/', $expression)) {
            throw new Exception("表达式包含非法字符");
        }

        // 使用eval计算表达式(生产环境应考虑更安全的方式)
        $result = eval("return $expression;");
    } catch (DivisionByZeroError $e) {
        $result = "除数不能为零";
    } catch (Exception $e) {
        $result = "计算错误: " . $e->getMessage();
    }
}
?>

<form method="post" action="">
    <input type="text" name="expression" placeholder="输入表达式,如:2*(3+4)" required>
    <button type="submit">计算</button>
</form>

<?php if ($result !== ''): ?>
    <p>结果: <?php echo $result; ?></p>
<?php endif; ?>

使用数学表达式解析库

对于更复杂的计算需求,可以使用专门的数学表达式解析库,如math-parser

require_once 'vendor/autoload.php';
use MathParser\StdMathParser;
use MathParser\Interpreting\Evaluator;

$parser = new StdMathParser();
$evaluator = new Evaluator();

$result = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        $expression = $_POST['expression'];
        $AST = $parser->parse($expression);
        $result = $AST->accept($evaluator);
    } catch (Exception $e) {
        $result = "计算错误: " . $e->getMessage();
    }
}

实现科学计算器功能

扩展计算器功能,支持科学计算函数:

php实现计算器程序

<?php
$result = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $function = $_POST['function'];
    $number = $_POST['number'];

    switch ($function) {
        case 'sqrt':
            $result = sqrt($number);
            break;
        case 'sin':
            $result = sin(deg2rad($number));
            break;
        case 'cos':
            $result = cos(deg2rad($number));
            break;
        case 'tan':
            $result = tan(deg2rad($number));
            break;
        case 'log':
            $result = log10($number);
            break;
        case 'ln':
            $result = log($number);
            break;
    }
}
?>

<form method="post" action="">
    <select name="function">
        <option value="sqrt">平方根</option>
        <option value="sin">正弦</option>
        <option value="cos">余弦</option>
        <option value="tan">正切</option>
        <option value="log">常用对数</option>
        <option value="ln">自然对数</option>
    </select>
    <input type="number" name="number" step="any" required>
    <button type="submit">计算</button>
</form>

计算器安全注意事项

在生产环境中实现计算器时,需要注意以下几点安全措施:

避免直接使用eval函数处理用户输入,这可能导致代码注入漏洞

php实现计算器程序

对用户输入进行严格验证,只允许特定的数学运算符和数字

考虑使用专门的数学表达式解析库,如PHP-MathParser

对于复杂计算,可以在客户端使用JavaScript预先验证表达式

实现输入过滤和输出转义,防止XSS攻击

标签: 计算器程序
分享给朋友:

相关文章

vscode如何运行react程序

vscode如何运行react程序

安装必要工具 确保Node.js已安装,可通过终端输入node -v和npm -v验证版本。React项目依赖Node.js环境。 全局安装create-react-app脚手架工具(若未安装):…

如何运行一个react程序

如何运行一个react程序

安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过终端输入node -v和npm -v验证版本。若未安装,从Node.js官网下载并安装最新LTS版本。 创建React项…

react实现小程序relaunch

react实现小程序relaunch

在React中实现类似小程序relaunch(关闭所有页面并重新打开应用)的功能,可以通过以下方式实现: 使用React Router进行路由重置 通过useNavigate或history…

js实现计算器功能

js实现计算器功能

实现基础计算器功能 使用HTML、CSS和JavaScript创建一个基础计算器,支持加减乘除运算。以下是核心代码示例: HTML结构 <div class="calculator">…

在线计算器js实现

在线计算器js实现

实现基础计算器功能 创建一个简单的HTML文件,包含数字按钮、运算符按钮和显示区域。使用JavaScript处理按钮点击事件并执行计算。 <!DOCTYPE html> <html…

js实现计算器连续加减

js实现计算器连续加减

实现思路 要实现一个支持连续加减的JavaScript计算器,关键在于实时解析用户输入的表达式并动态计算结果。可以通过事件监听和表达式解析来完成。 核心代码示例 // 获取DOM元素 const…