PHP字符串中的浮点值
我有一个html表单(这是一个商店的收据表单),它包含大约100个文本框,用户需要输入一个浮点值或“20.2*33.4”的形式。表单将提交到php页面。我想确保每个文本框都包含相同的模式,然后我想计算文本中的乘法 我想知道如何检查字符串的格式是否为“float*float”PHP字符串中的浮点值,php,Php,我有一个html表单(这是一个商店的收据表单),它包含大约100个文本框,用户需要输入一个浮点值或“20.2*33.4”的形式。表单将提交到php页面。我想确保每个文本框都包含相同的模式,然后我想计算文本中的乘法 我想知道如何检查字符串的格式是否为“float*float” 请帮忙。谢谢这是不可能的,你唯一可以使用的功能是eval,但在表单中这样使用是非常危险的 如果要计算表达式,则需要创建自己的语言(使用解析器、lexer等) 所以这是不可能的。你可以看看这里 编辑:如果它只是一个简单的乘法,
请帮忙。谢谢这是不可能的,你唯一可以使用的功能是eval,但在表单中这样使用是非常危险的 如果要计算表达式,则需要创建自己的语言(使用解析器、lexer等) 所以这是不可能的。你可以看看这里
编辑:如果它只是一个简单的乘法,总是两个部分,你可以按照上面的注释分解它。你可以使用正则表达式检查格式,然后解析出数字和运算符,然后进行计算
$total = 0;
$string = '20.2*33.4';
if(preg_match('/^(\d*\.?\d+)(?:\*)(\d*\.?\d+)$/', $string, $matches) === 1){
$total = floatval($matches[1]) * floatval($matches[2]);
}
演示:什么样的帮助?您尝试过什么?您正在构建软件,而您的用户仍在使用公式。如何:Box(操作员选择器)Box。或者在*上分解得到的2个变量。我尝试过使用eval,但了解到使用eval是有风险的,因为它会执行字符串,所以确保字符串的格式是正确的吗?检查字符串是否为该格式的最佳方法是什么?可能的,在*倍数上爆炸2个变量你给出了问题的多种解决方案,但说这是不可能的?事实上,我发现它确实提供了一个答案,链接只是提供了更多的细节。