Php süreç matematiksel denklemler

0 Cevap php

Bir kullanıcı onlar gibi herhangi bir matematiksel denklemi (tek değişken ile) girmek için izin verilir:

x + 5

1 - x/2

(x/3) * (56/13)

Bu veritabanında dizeleri olarak depolanır. Alındıktan zaman bir dizi için 'x' yerine ve denklemin değerini kontrol etmek gerekir.

Bunu nasıl yapabilir?

Ben dizeleri yapısızlaştırmak ve denklemler bunları açmak için bir ayrıştırıcı yazma düşündüğünü, ancak bu pahalı ve sorunlu geliyor. Diğer seçenek eval yoluyla onları geçmek için (ama ben bunu yardımcı olabilir eğer eval kullanarak büyük bir hayranı değilim).

Herhangi bir fikir?

UPDATE: I also need to be able to get the boolean value of something like "(x > 5)". This is not possible with evalMath

UPDATE 2: I need to fire lots of these a second. I've been looking into eval in php but cant get it to return a boolean for (5 > 4) however I noticed js would do it... maybe I should investigate node.js...

UPDATE 3: After having some fun trying out node.js (and getting it to work) I went back and got eval to work in PHP see: http://stackoverflow.com/questions/4028043/can-php-eval-return-a-boolean-value

Yani kullanıcı girişi çok çok sert filtresi ile eval ile gidecek.

0 Cevap