Как санировать номер телефона перед поиском в поле мульти поиска?

0

У меня есть поле, в котором пользователь может искать базу данных MySQL для электронной почты, телефона и имени пользователя. Все номера в базе данных - 10-значный (1231231234) формат.

IF (большой, если есть), пользователь вводит номер телефона в следующем формате. Я хочу, чтобы он был дезинфицирован только в 10-значной строке, поскольку он коррелирует в базе данных:

(123)123-1234
123-123-1234
123.123.1234
+1(123)123-1234
11231231234

Доступны имена пользователей и электронные письма. и - символы. Поэтому я не знаю, как использовать PHP, чтобы определить, находится ли он в одном из этих форматов, а затем дезинформировать его соответствующим образом. Идеи?

  • 3
    Вам нужно будет обработать это на PHP, прежде чем вставлять в MySQL. Немного магии регулярных выражений, вероятно, может справиться с этим.
  • 2
    См. Рекомендацию МСЭ-Т E.164 о телефонных номерах. en.wikipedia.org/wiki/E.164 Не используйте числовые типы данных для хранения телефонных номеров.
Теги:

2 ответа

0

libphonenumber может правильно переформатировать телефонные номера в общий формат, добавив, где это необходимо, международные коды, а затем он может быть сохранен в базе данных как простая строка с возможностью поиска.

  • 0
    Похоже, это может сработать, хотя я искал что-то более легкое.
0

Это позволит удалить все, что вам нужно, удалить из телефонных номеров или любого другого значения. Просто обновите массив, если вам нужно удалить другие вещи.

$string = str_replace(array('-',' ','.','(',')',',','"','+'),'',$string);
  • 0
    Это ломает - и. в адресах электронной почты. Нет идти
  • 0
    Возможно, должно быть что-то, распознающее цифровую строку из 10 или 11 цифр, разделенную определенными символами, и затем удалите их соответствующим образом.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню