假設我有一個表單,我要求產品的價格。基本上,我不考慮用戶添加數千個逗號的情況,即: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