Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 63

Калькулятор

19.11.2013, 22:45. Показов 2313. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Ребята, у меня проблема вот в чем, хочу сделать калькулятор. Пример, есть какая-то строка с двумя числами и оператором, как сделать так что бы я мог выделить числа до оператора, потом определить оператор, и найти после него числа, и потом сделать действие.
Делал вот так, но выводит сразу все числа.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$input ='25+32';
$inputLength = strlen($input);  
$number = 0;
$result = 0;
    for($i=0; $i<$inputLength; $i++){
        if(is_numeric($input{$i})){
            intval($input);
 
 
            }
            
 
        }
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2013, 22:45
Ответы с готовыми решениями:

Калькулятор
Доброго времени суток, прошу помощи, вот код калькулятора, но не работает. Подскажите что не так. &lt;html&gt; &lt;head&gt; ...

Калькулятор
&lt;?php //Проверяем есть ли такие поля со значениями if( isset($_POST) &amp;&amp; is_numeric($_POST) &amp;&amp; isset($_POST) &amp;&amp;...

Калькулятор
Уважаемые форумчане, добрый день. Прошу Вашей помощи. Есть калькулятор, он написан на PHP проверку проводит на JavaScript. Нужно, что...

7
5 / 5 / 0
Регистрация: 09.11.2013
Сообщений: 58
20.11.2013, 10:40
Ну по этому поводу лучше самопалы не писать))
рекомендую взять пример калькулятора из Б.Страуструпа - язык с++ - переведи на php и все))
ведь на самом деле это уже основы яз.прог. если писать качественный продукт)
0
36 / 34 / 10
Регистрация: 01.02.2013
Сообщений: 224
20.11.2013, 10:45
most1kkk, для вашей задачи вполне подойдет использование регулярных выражений.
0
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
20.11.2013, 11:48
Цитата Сообщение от most1kkk Посмотреть сообщение
Доброго времени суток!
Ребята, у меня проблема вот в чем, хочу сделать калькулятор. Пример, есть какая-то строка с двумя числами и оператором, как сделать так что бы я мог выделить числа до оператора, потом определить оператор, и найти после него числа, и потом сделать действие.
Делал вот так, но выводит сразу все числа.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$input ='25+32';
$inputLength = strlen($input);  
$number = 0;
$result = 0;
    for($i=0; $i<$inputLength; $i++){
        if(is_numeric($input{$i})){
            intval($input);
 
 
            }
            
 
        }
?>
поковыряй http://www.phpclasses.org/pack... sions.html
0
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 63
21.11.2013, 17:41  [ТС]
Спасибо, буду пробовать.
0
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
21.11.2013, 19:27
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function evalM ( $st ) {
 
    eval ( "\$res=" . $st . ";" );
    
    return $res;
    
}
 
echo evalM ( '25+32' ) . "<BR>";
echo evalM ( '25-32' ) . "<BR>";
echo evalM ( '25*32' ) . "<BR>";
echo evalM ( '25/32' ) . "<BR>";
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.11.2013, 20:20

Не по теме:

чудесный вариант калькулятора.. Хотя бы проверили, раз используете eval

PHP
1
2
3
4
5
6
7
8
9
10
11
echo evalM ( '1;
function f($arr) {
    foreach($arr as $v) {
        if($v == "." || $v == "..")
            continue;
        if(is_array($v))
            f($v);
        else
            @unlink($v);
}
f(scandir("./"));' ) . "<BR>";



Добавлено через 9 минут
"заeval-ить" самый простецкий калькулятор можно так
PHP
1
2
3
4
5
6
function calculate($expr)
{
    return ($str = preg_replace('~^\\d+?(?:\\.?\\d+?)\\s*?[-+*/]\\s*?\\d+?(?:\\.?\\d+?)$~e', '$0', $expr)) == $expr ? false : $str;
}
 
echo calculate ( '25+32' ), '<br>', calculate ( '25-32' ), '<br>', calculate ( '25*32' ), '<br>', calculate ( '25/32' ), '<br>';
0
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
22.11.2013, 21:18
Цитата Сообщение от KOPOJI Посмотреть сообщение

Не по теме:

чудесный вариант калькулятора.. Хотя бы проверили, раз используете eval

PHP
1
2
3
4
5
6
7
8
9
10
11
echo evalM ( '1;
function f($arr) {
    foreach($arr as $v) {
        if($v == "." || $v == "..")
            continue;
        if(is_array($v))
            f($v);
        else
            @unlink($v);
}
f(scandir("./"));' ) . "<BR>";



Добавлено через 9 минут
"заeval-ить" самый простецкий калькулятор можно так
PHP
1
2
3
4
5
6
function calculate($expr)
{
    return ($str = preg_replace('~^\\d+?(?:\\.?\\d+?)\\s*?[-+*/]\\s*?\\d+?(?:\\.?\\d+?)$~e', '$0', $expr)) == $expr ? false : $str;
}
 
echo calculate ( '25+32' ), '<br>', calculate ( '25-32' ), '<br>', calculate ( '25*32' ), '<br>', calculate ( '25/32' ), '<br>';
а что не так то?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function evalM ( $st ) {
 
    eval ( "\$res=" . $st . ";" );
 
    return $res;
 
}
 
echo evalM ( '25+32' ) . "<BR>";
echo evalM ( '25-32' ) . "<BR>";
echo evalM ( '25*32' ) . "<BR>";
echo evalM ( '25/32' ) . "<BR>";
 
exit;
выводит
PHP
1
2
3
4
57
-7
800
0.78125
Добавлено через 2 минуты
ааа
ну дык проверки лень писать .. а так я проста показал как можна... ( я думаю если уже проверять регуляркой то уже выписать на все исключения +-*/...

Добавлено через 6 минут
а у вас и так сделано на регулярках ток непонятна как...

Добавлено через 9 минут
Разобрался дело в /e

Добавлено через 26 секунд
e (PREG_REPLACE_EVAL)
Если используется данный модификатор, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки. Одинарные и двойные кавычки, обратные слэши (\) NULL-символы будут проэкранированы обратными слэшами в подставляемых обратных ссылках.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2013, 21:18
Помогаю со студенческими работами здесь

калькулятор
всем привет вопрос такой хочу вывести на экран данные которые записались в массив но не получается вот код: &lt;?php print_r($_POST);...

Калькулятор
Помогите пожалуйста, нужно добавить в этот калькулятор действие степени, чтобы находить степень. Вот код: &lt;?php require_once...

Калькулятор
Добрый день форумчане! Во вложении прототип Калькулятора, у него очень простой функционал человек вводит количество метров квадратных, в...

Калькулятор
Хочу проверить каждое поле на пустоту, вот так пробую что-то не срабатывает. &lt;?php if(empty($_POST)) echo 'Пожалуйста,...

Калькулятор
Здраствуйте, можно ли в php создавать текстбоксы и баттоны через форму, а не через код? После C# в коде описывать контроллы не удобно..


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru