当前位置:首页 > PHP

php实现计算器程序

2026-02-14 05:16:57PHP

基础计算器实现

使用PHP创建一个基础计算器,支持加减乘除运算。通过HTML表单接收用户输入,PHP处理计算逻辑。

<!DOCTYPE html>
<html>
<head>
    <title>PHP计算器</title>
</head>
<body>
    <form method="post">
        <input type="number" name="num1" required>
        <select name="operator">
            <option value="add">+</option>
            <option value="subtract">-</option>
            <option value="multiply">×</option>
            <option value="divide">÷</option>
        </select>
        <input type="number" name="num2" required>
        <button type="submit">计算</button>
    </form>

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

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

        echo "<p>结果: $result</p>";
    }
    ?>
</body>
</html>

科学计算器扩展

在基础计算器上增加科学计算功能,如幂运算、平方根、三角函数等。

// 在原有表单中添加科学计算选项
<select name="scientific">
    <option value="">--选择科学运算--</option>
    <option value="power">幂(x^y)</option>
    <option value="sqrt">平方根</option>
    <option value="sin">正弦</option>
    <option value="cos">余弦</option>
</select>

// 在PHP处理部分添加
if (isset($_POST["scientific"]) && !empty($_POST["scientific"])) {
    $func = $_POST["scientific"];
    switch ($func) {
        case "power":
            $result = pow($num1, $num2);
            break;
        case "sqrt":
            $result = sqrt($num1);
            break;
        case "sin":
            $result = sin(deg2rad($num1));
            break;
        case "cos":
            $result = cos(deg2rad($num1));
            break;
    }
}

表达式解析计算器

实现能解析数学表达式的计算器,处理如"3+5*2"这样的复合表达式。

function evaluateExpression($expression) {
    // 移除所有空格
    $expression = str_replace(' ', '', $expression);

    // 使用PHP的eval函数(注意安全风险,生产环境需替换为解析器)
    try {
        eval('$result = '.$expression.';');
        return $result;
    } catch (Throwable $e) {
        return "表达式错误";
    }
}

// 更安全的替代方案(使用数学表达式解析库)
// 需要安装https://github.com/mossadal/math-parser
/*
use MathParser\StdMathParser;
use MathParser\Interpreting\Evaluator;

$parser = new StdMathParser();
$AST = $parser->parse("3+5*2");
$evaluator = new Evaluator();
$value = $AST->accept($evaluator);
*/

计算器安全增强

为防止代码注入,对用户输入进行严格过滤和验证。

// 过滤非数字字符
function sanitizeInput($input) {
    return preg_replace('/[^0-9\.\+\-\*\/]/', '', $input);
}

// 验证数字
function isValidNumber($num) {
    return is_numeric($num);
}

// 使用时的修改
$num1 = isValidNumber($_POST["num1"]) ? $_POST["num1"] : 0;
$expression = isset($_POST["expression"]) ? sanitizeInput($_POST["expression"]) : "";

计算器样式美化

使用CSS美化计算器界面,创建更专业的视觉效果。

<style>
    .calculator {
        width: 300px;
        margin: 50px auto;
        padding: 20px;
        border: 1px solid #ccc;
        border-radius: 10px;
        box-shadow: 0 0 10px rgba(0,0,0,0.1);
    }
    input, select {
        padding: 8px;
        margin: 5px 0;
        width: 100%;
        box-sizing: border-box;
    }
    button {
        background: #4CAF50;
        color: white;
        padding: 10px;
        border: none;
        width: 100%;
        cursor: pointer;
    }
    .result {
        margin-top: 15px;
        padding: 10px;
        background: #f9f9f9;
        border-radius: 5px;
    }
</style>

<div class="calculator">
    <!-- 之前表单内容 -->
    <div class="result">
        <?php if (isset($result)) echo "结果: $result"; ?>
    </div>
</div>

php实现计算器程序

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

相关文章

css制作计算器界面

css制作计算器界面

使用CSS制作计算器界面 制作计算器界面需要结合HTML结构、CSS样式以及可能的JavaScript交互功能。以下是纯CSS部分的实现方法,创建一个基础计算器界面。 HTML结构 先构建一个简单的…

小程序使用vue实现

小程序使用vue实现

使用 Vue 实现小程序的开发方法 Vue 本身是前端框架,而小程序(如微信小程序)有独立的开发体系。若想用 Vue 的语法或生态开发小程序,可通过以下方案实现: 使用跨平台框架(推荐) mpv…

vue实现手机小程序

vue实现手机小程序

Vue 实现手机小程序的方案 Vue 本身是一个前端框架,主要用于构建 Web 应用。若需开发手机小程序,需结合其他工具或框架。以下是常见的实现方案: 使用 Uni-app 框架 Uni-app…

node vue 实现小程序

node vue 实现小程序

使用 Node.js 和 Vue.js 实现小程序的方案 技术栈选择 Node.js 作为后端服务,Vue.js 作为前端框架,结合小程序开发工具(如微信小程序或 UniApp)实现跨端开发。 后…

国产操作系统如何部署react程序

国产操作系统如何部署react程序

国产操作系统部署React程序的步骤 环境准备 确保国产操作系统(如统信UOS、麒麟OS等)已安装Node.js环境。可通过官方文档或包管理器(如apt、yum)安装Node.js和npm/yarn。…

react实现小程序relaunch

react实现小程序relaunch

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