[PHP] is_numeric auch für deutsche Syntax?
-
Hi,
es ist richtig blöde, dass is_numeric nur US Syntax unterstützt (z. B. 3.14) und sowas wie "3,14" als false ausgibt.
Gibt es sowas auch für deutsch Syntax?!
-
is_numeric(str_replace(',', '.', $deine_zahl))
oder
function my_is_numeric($deine_zahl) { return is_numeric(str_replace(',', '.', $deine_zahl)); }
-
Sorry, aber diese Variante hatte ich schon und sie ist mehr als unsafe!
<?php function xxx_is_numeric ($value) { return is_numeric(str_replace(',', '.', $value)); } function foobar ($value) { echo $value .':'. (xxx_is_numeric ($value) ? "true" : "false") .'<br />'; } foobar (10000); foobar (3.14); foobar ("3,140.10"); foobar ("3.140,11"); ?>
[code]10000:true
3.14:true
3,140.10:false
3.140,11:false[/cpp]
-
-
Und ansonsten wäre es immer noch möglich, einfach , und . zu invertieren ...
-
freaky! schrieb:
es ist richtig blöde, dass is_numeric nur US Syntax unterstützt (z. B. 3.14) und sowas wie "3,14" als false ausgibt.
Es wird auf PHP-Zahlen überprüft, nicht auf US-Schreibweise.
function is_numeric_DE ($value) { return (bool)preg_match ('=^(\d{1,3}(\.\d{3})*|\d+)(,\d+)?$=' }
Habe ich aber nicht getestet.