- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
пример:
имеется строка вида: (1+2)*3
необходимо преобразовать её в математическое выражение и выполнить.
Есть ли решения данной задачи без использования eval()?
Спасибо.
ручками парсер написать :)
а чем eval не устраивает?
попробуй умножить на 1
т.е. $stroka*1
не пробовал - но авось проканает :)
Через БД запросом: "select (1+2)*3"
попробуй умножить на 1
т.е. $stroka*1
не пробовал - но авось проканает :)
Неа, 0 будет.
Регуляркой проверить строку на предмет только разрешенных символов (цифры и символы +-/*()) и использовать eval.
пример:
имеется строка вида: (1+2)*3
необходимо преобразовать её в математическое выражение и выполнить.
Есть ли решения данной задачи без использования eval()?
Спасибо.
Стандартными средствами - никак.
Можете поискать парсер математических выражений на php, если очень нужно обойтись без eval();
Действительно, eval() самое простое решение. Главное (как сказал и Алексей) — фильтровать символы.
В общем, можно попробовать так:
Спасибо.
$str = (float) preg_replace( '/([0-9\(\)\*\-\+\/\.]*)/e', '\\1', $str );
echo $str; // 9
устраивает полностью