Estrapolare i numeri da una stringa in PHP
Oggi vediamo come possiamo estrapolare i numeri da una string in PHP.
Ci sono, ovviamente, molti modi per fare questa operazione.
Noi useremo la funzione filter_var.
Supponiamo di avere una stringa del genere: KG 19.
Dobbiamo prelevare solo il numero.
Ecco un esempio:
$str = 'KG 19';
$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
echo $int;
Volendo possiamo anche eseguire operazioni matematiche sul numero estratto:
$str = 'KG 19';
$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT) - 1;
echo $int;
Se invece la stringa contiene delle virgole potremmo avere dei problemi.
Se vogliamo trasforma ciò che viene dopo la virgola in decimali, possiamo fare così:
$str = 'KG 19,5';
$newStr = str_replace(',', '.', $str);
$int = filter_var($newStr, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
Prima trasformiamo la virogla in punto.
Poi usiamo FILTER_SANITIZE_NUMBER_FLOAT e FILTER_FLAG_ALLOW_FRACTION (qui i dettagli dei filtri) per mantenere i decimali.
(Ringrazioni il forum di HTML.it per questo suggerimento).
Molto easy!
Enjoy!
php filter_var filter_sanitize_number_int filter_sanitize_number_float filter_flag_allow_fraction
Commentami!