Подтвердить что ты не робот

Как получить длину целых чисел в PHP?

Я хочу получить длину целочисленных значений для проверки в PHP. Пример: Мобильные номера должны быть всего 10 целых значений. Он должен быть не более 10 или менее 10, а также не должен содержать буквенных символов.

Как я могу проверить это?

4b9b3361

Ответ 1

if (preg_match('/^\d{10}$/', $string)) {
  // pass
} else {
  // fail
}

Ответ 2

$num_length = strlen((string)$num);
if($num_length == 10) {
    // Pass
} else {
    // Fail
}

Ответ 3

Это будет работать практически во всех случаях (кроме нуля) и легко закодировано на других языках:

$length = ceil(log10(abs($number) + 1)

Ответ 4

На мой взгляд, лучший способ:

$length = ceil(log10($number))

Обозначенный десятичный логарифм равен длине числа.

Ответ 5

Если вы используете веб-форму, убедитесь, что вы ограничиваете ввод текста, удерживая только 10 символов, чтобы добавить некоторую доступность (пользователи не хотят вводить их неправильно, отправлять, получать диалог об их ошибке, исправить его, отправить снова и т.д.)

Ответ 6

Использовать функцию intval в цикле, См. Этот пример

<?php
  $value = 16432;
  $length=0;
  while($value!=0) {
   $value = intval($value/10);
   $length++
  }
  echo "Length of Integer:- ".$length;
 ?>

Ответ 7

$input = "03432 123-456"; // A mobile number (this would fail)

$number = preg_replace("/^\d/", "", $number);
$length = strlen((string) $number);

if ($number == $input && $length == 10) {
    // Pass
} else {
    // Fail
}

Ответ 8

Если вы оцениваете номера мобильных телефонов (номера телефонов), я бы рекомендовал не использовать int в качестве выбранного вами типа данных. Вместо этого используйте строку, потому что я не могу предвидеть, как и почему вы хотите сделать математику с этими числами. Как наилучшая практика, используйте int, floats и т.д., Когда вам нужно/нужно делать математику. Используйте строки, когда вы этого не сделаете.