Привести строки к равенству

Nigga

Новичок
Здравствуйте, столкнулся с подобной проблемой может кто сможет помочь.

есть формула определения гипотенузы вида
$a = "sqrt(pow($F12,2)+pow($H1,2))";

используя вот эту функцию на основе eval
function calculator1($str){ eval("\$str = $str;"); return $str; }

и ранее полученных данных из get
$F1= $_GET["F1"];
$H1=$_GET["H1"];

calculator1($a); - получаем верный ответ...


Но если я хочу хранить эту формулу в БД и доставать ее оттуда по условию
типа
$sql = "SELECT * FROM `formulae` where id='1'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

и использовать в дальнейшем нашу функцию calculator1
echo calculator1($row["formula"])
она не дает нужного результата, возвращает 0

Опытным путем пришел к результату что строка возвращаемая из БД имеет вид
sqrt(pow(\$F12,2)+pow(\$H1,2)) - спецсимволы экранированны
то есть

переменная $a не равна $row["formula"]

Внимание вопрос как превратить возвращаемый в из БД строку к нужному виду...
то есть что бы a$ == $row["formula"]

Спасибо
 

ksnk

прохожий
Есть куча ответов. Самый правильный - не пользоваться eval.

Если обстоятельства непреодолимой силы таки заставляют тебя использовать его - то можно посмотреть на функцию stripslashes
 

ksnk

прохожий
$a = "sqrt(pow($F12,2)+pow($H1,2))";

используя вот эту функцию на основе eval
function calculator1($str){ eval("\$str = $str;"); return $str; }

и ранее полученных данных из get
$F1= $_GET["F1"];
$H1=$_GET["H1"];

calculator1($a); - получаем верный ответ...
В этой фразе что-то не то. Верного ответа по любому не получится... Функция не может видеть F1 и H1 заданных глобально
 
Сверху