За последние 24 часа нас посетили 17486 программистов и 1603 робота. Сейчас ищут 1150 программистов ...

Преобразование выражения

Тема в разделе "PHP для новичков", создана пользователем santech, 23 ноя 2007.

  1. santech

    santech Активный пользователь

    С нами с:
    12 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
    В одном из текстовых полей формы ввожу функцию, понятную PHP, но без знаков $. К примеру: 5*x-4/x+8
    Как мне получить значение этой функции, то есть как заменить этот x на $x, который я определяю в другом месте? Вопрос, может быть дурацкий, но я пробовал через определение констант, что-то не получается. Какие еще варианты есть, если есть вообще?
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
  3. santech

    santech Активный пользователь

    С нами с:
    12 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
    и что? - это я в курсе что там пишут...
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Полагаю, что надо регуляркой менять х на $x, а потом eval'om.
     
  5. santech

    santech Активный пользователь

    С нами с:
    12 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
    Ага, так сделал... Вопрос уже не актуален, но все равно спасибо )))
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    осталось только надеяться, что этим eval'ом никто левый не воспользуется
     
  7. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    в дельфи такое проделывалось с помощью обратной польской записи (или инверсной), рекомендую и для пхп поискать
     
  8. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  9. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    santech

    если не хочешь следовать совету выше, то обрабатывай входящие значения из формы функцией intval и заключай в круглые скобки (чтобы число -5 в формуле вида 5*х превращалось в 5*(-5), а не 5*-5), а потом уже делай eval