2016-04-05 45 views
1

Matematik denklemleri yapmak için eval() kullanmanın alternatifi var mı, yoksa kullanıcı girdilerinde güvenlik kullanımını değerlendirmenin bir yolu var mı?php kullanarak matematik denklemleri yapmak için eval() yöntemleri için alternatifler

$string = "1+2-3*4/5"; 
$answer = eval($answer = $string); 
+0

Hesaplamadan önce girişi doğrulayın. Bazı cevapları şu adreste bulabilirsiniz: http://stackoverflow.com/q/18880772/3933332 – Rizier123

+0

veya bazı [ayrıştırıcı] kullanarak (https://github.com/ircmaxell/php-math-parser/tree/master/lib/PHPMathParser) – Federkun

+0

Zaten son sorunuzun altında yazdım – Rizier123

cevap

1

Belki de verilen dizeden yalnızca matematiksel ve sayısal değerleri seçmek isteyebilir, sonra da değerlendirmeyi yapabilirsiniz.

preg_match_all("/[0-9()+\-*\/.]/", $string, $output_array); 
$operation = implode("", $output_array[0]); 
eval($operation);