假设我有一个表单,我要求产品的价格。基本上,我不考虑用户添加数千个逗号的情况,即:1,000.00或1,000,000.00PHP函数安全地返回字符串中的浮点数
我只考虑用户输入1000.00或1000,00或1000000.00但从未1,000.00或10,000,000.00的情况或者,甚至最差,10.000.000,00
我想出了这个功能。
function getPrice($price)
{
if (is_string($price)) {
if (strpos($price, ",") !== false) {
$price = str_replace(',', '.', $price);
}
}
return (is_numeric($price)) ? floatval($price) : false;
}
您认为安全吗?你能指出改进吗?
@Devon再次阅读这个问题......他不考虑1000.00的情况下只是1000.00 – Jackowski
@Jackowski,你是对的,我第一次浏览。 – Devon
字符串替换是不必要的,floatval已经将''''或'.'作为小数点分隔符。 – Devon