浮点值PHP字符串

时间:2013-01-28 19:39:03

标签: php

我有一个html表单(它是商店的收据表单),其中包含大约一百个文本框,用户可以输入浮点值的形式> “20.2 33.4 *”即可。表单提交到php页面。我想确保每个文本框都包含相同的模式,然后我想评估文本中的乘法。

我想知道如何检查字符串格式是否为“float * float”?

请任何帮助。谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式检查格式,然后解析数字和运算符,然后进行计算。

$total = 0;
$string = '20.2*33.4';
if(preg_match('/^(\d*\.?\d+)(?:\*)(\d*\.?\d+)$/', $string, $matches) === 1){
    $total = floatval($matches[1]) * floatval($matches[2]);
}

DEMO:http://ideone.com/azhMag

答案 1 :(得分:-2)

这是不可能的,你可以使用的唯一功能是eval,但它在表格中使用非常危险。

如果要评估表达式,则需要创建自己的语言(使用解析器,词法分析器等)。

所以这是不可能的。你可以看看http://en.wikipedia.org/wiki/Shunting-yard_algorithm

编辑:如果它只是一个简单的乘法,总是两个部分,你可以像上面评论的那样爆炸它。