Originariamente inviato da lorenz_italy
Ho un semplice problema
Io faccio così:
<input type="double".....>
avevo letto questo 3D ... aspettavo solo questo problema 
is_numeric è una funzione relativamente inutile, soprattutto se i dati devono arrivare "dall' esterno" (e una input può essere text, mai double o int) .
is_int ed is_float non ti serviranno a niente invece, perchè daranno true solo se il dato è di tipo int, o float, per l'appunto.
Quando invii in GET o POST php considera sempre stringhe, queste variabili.
una funzione utile potrebbe essere questa:
codice:
function is_number($n) {
if(preg_match("/^[0-9]+$/", $n))
$result = (int) $n;
elseif(preg_match("/^[0-9]*\.[0-9]+$/", $n))
$result = (double) $n;
else
$result = false;
return $result;
}
// esempio
if(is_number($_POST['data']) !== false)
echo is_int($_POST['data']) ? 'int' : 'float';
notare la parte in bold per il controllo, essenziale per il corretto parse del risultato.