PHP sanitize filters Из списка есть один вариант дезинфицировать целых чисел:PHP: Как дезинфицировать натуральное число (положительный INT)?
FILTER_SANITIZE_NUMBER_INT - Удалить все символы, кроме цифр , плюс и минус.
Если мы используем:
filter_var($var2San, FILTER_SANITIZE_NUMBER_INT);
Это уберет точки .
и запятые ,
но +
и -
признаки остаются. Например: ++++ --- 1.110,4 <b>m<sup>2</sup></b>
дезинфицирован до ++++---111042
. В идеале filter_var
вернет false
, когда число равно 0, то есть число должно быть natural number, более конкретно, положительным целым числом.
Поэтому FILTER_SANITIZE_NUMBER_NATURAL
будет удобно ... Есть ли обходной путь для этого или мне нужен RegExp?
Существует также 'ctype_digit()', который не имеет ограничения на его максимальное значение, но также не позволяет «+», разделители тысяч, десятичное место и т. Д.В буквальном смысле вы использовали регулярное выражение «^ [0-9] + $» для проверки вашей строки, хотя, очевидно, намного быстрее. – Ghedipunk
@Ghedipunk Несмотря на то, что возвращает только 'false' или' true' [ctype_digit] (http://php.net/manual/en/function.ctype-digit.php), кажется очень хорошей альтернативой, оцененной! – Armfoot
Очень чистый. Любить это. – Kray