DeepSeek Программист
U
разработай код калькулятора на php
AI
Вот пример простого, но функционального калькулятора на PHP с веб-интерфейсом:
1. Поддерживаемые операции:
- Сложение (+)
- Вычитание (-)
- Умножение (×)
- Деление (÷)
- Возведение в степень (^)
- Квадратный корень (√)
2. Безопасность:
- Используется
- Валидация вводимых данных
- Проверка деления на ноль
3. Пользовательский интерфейс:
- Адаптивный дизайн
- Поля сохраняют значения после отправки формы
- Второе поле скрывается при выборе операции квадратного корня
- Вывод результатов в отдельном блоке
4. Обработка ошибок:
- Проверка на числовые значения
- Проверка деления на ноль
- Проверка извлечения корня из отрицательного числа
1. Сохраните код в файл с расширением
2. Загрузите на веб-сервер с поддержкой PHP
3. Откройте файл в браузере
Калькулятор работает полностью на одной странице, используя метод POST для отправки данных. Вы можете легко расширить его функциональность, добавив новые операции (процент, тригонометрические функции и т.д.).
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Калькулятор на PHP</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 400px;
margin: 50px auto;
padding: 20px;
background-color: #f5f5f5;
}
.calculator {
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
input[type="text"], select {
width: 100%;
padding: 10px;
margin: 8px 0;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
}
input[type="submit"] {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
width: 100%;
font-size: 16px;
}
input[type="submit"]:hover {
background-color: #45a049;
}
.result {
margin-top: 20px;
padding: 15px;
background-color: #e8f5e9;
border-radius: 4px;
font-size: 18px;
}
.error {
color: #d32f2f;
background-color: #ffebee;
padding: 10px;
border-radius: 4px;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="calculator">
<h2>Калькулятор</h2>
<form method="post" action="">
<input type="text" name="num1" placeholder="Первое число"
value="<?php echo isset($_POST['num1']) ? htmlspecialchars($_POST['num1']) : ''; ?>" required>
<select name="operator">
<option value="add" <?php echo (isset($_POST['operator']) && $_POST['operator'] == 'add') ? 'selected' : ''; ?>>+</option>
<option value="subtract" <?php echo (isset($_POST['operator']) && $_POST['operator'] == 'subtract') ? 'selected' : ''; ?>>-</option>
<option value="multiply" <?php echo (isset($_POST['operator']) && $_POST['operator'] == 'multiply') ? 'selected' : ''; ?>>×</option>
<option value="divide" <?php echo (isset($_POST['operator']) && $_POST['operator'] == 'divide') ? 'selected' : ''; ?>>÷</option>
<option value="power" <?php echo (isset($_POST['operator']) && $_POST['operator'] == 'power') ? 'selected' : ''; ?>>^ (степень)</option>
<option value="sqrt" <?php echo (isset($_POST['operator']) && $_POST['operator'] == 'sqrt') ? 'selected' : ''; ?>>√ (квадратный корень)</option>
</select>
<input type="text" name="num2" placeholder="Второе число"
value="<?php echo isset($_POST['num2']) ? htmlspecialchars($_POST['num2']) : ''; ?>"
id="num2_field">
<input type="submit" name="calculate" value="Вычислить">
</form>
<?php
// Обработка формы
if (isset($_POST['calculate'])) {
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];
$result = '';
$error = '';
// Валидация ввода
if (!is_numeric($num1)) {
$error = "Первое число должно быть числом!";
}
// Для операций, требующих два числа
if (in_array($operator, ['add', 'subtract', 'multiply', 'divide', 'power'])) {
if (!is_numeric($num2)) {
$error = "Второе число должно быть числом!";
}
if ($operator == 'divide' && $num2 == 0) {
$error = "Деление на ноль невозможно!";
}
}
// Если нет ошибок, выполняем вычисления
if (empty($error)) {
switch ($operator) {
case 'add':
$result = $num1 + $num2;
$operation = "$num1 + $num2";
break;
case 'subtract':
$result = $num1 - $num2;
$operation = "$num1 - $num2";
break;
case 'multiply':
$result = $num1 * $num2;
$operation = "$num1 × $num2";
break;
case 'divide':
$result = $num1 / $num2;
$operation = "$num1 ÷ $num2";
break;
case 'power':
$result = pow($num1, $num2);
$operation = "$num1 ^ $num2";
break;
case 'sqrt':
if ($num1 < 0) {
$error = "Нельзя извлечь корень из отрицательного числа!";
} else {
$result = sqrt($num1);
$operation = "√$num1";
}
break;
default:
$error = "Неизвестная операция";
}
}
// Вывод результата или ошибки
if (!empty($error)) {
echo "<div class='error'>Ошибка: $error</div>";
} elseif ($result !== '') {
echo "<div class='result'><strong>Результат:</strong><br>";
echo "$operation = <strong>$result</strong></div>";
}
}
?>
</div>
<script>
// JavaScript для скрытия второго поля при выборе квадратного корня
document.addEventListener('DOMContentLoaded', function() {
const operatorSelect = document.querySelector('select[name="operator"]');
const num2Field = document.getElementById('num2_field');
function toggleNum2Field() {
if (operatorSelect.value === 'sqrt') {
num2Field.style.display = 'none';
num2Field.removeAttribute('required');
} else {
num2Field.style.display = 'block';
num2Field.setAttribute('required', 'required');
}
}
toggleNum2Field(); // Инициализация при загрузке
operatorSelect.addEventListener('change', toggleNum2Field);
});
</script>
</body>
</html>
Особенности этого калькулятора:
1. Поддерживаемые операции:
- Сложение (+)
- Вычитание (-)
- Умножение (×)
- Деление (÷)
- Возведение в степень (^)
- Квадратный корень (√)
2. Безопасность:
- Используется
htmlspecialchars() для предотвращения XSS-атак- Валидация вводимых данных
- Проверка деления на ноль
3. Пользовательский интерфейс:
- Адаптивный дизайн
- Поля сохраняют значения после отправки формы
- Второе поле скрывается при выборе операции квадратного корня
- Вывод результатов в отдельном блоке
4. Обработка ошибок:
- Проверка на числовые значения
- Проверка деления на ноль
- Проверка извлечения корня из отрицательного числа
Как использовать:
1. Сохраните код в файл с расширением
.php (например, calculator.php)2. Загрузите на веб-сервер с поддержкой PHP
3. Откройте файл в браузере
Калькулятор работает полностью на одной странице, используя метод POST для отправки данных. Вы можете легко расширить его функциональность, добавив новые операции (процент, тригонометрические функции и т.д.).
Глубокое мышление
Поиск в интернете