Подскажите как получать из бд отредактированные номера в таком формате + 7 (922) 000 - 00 - 00.
Дополнительно:
ШТО
В базе номера следует держать без всяких красивостей, иначе их затрахаешься искать, например.
А оформить уже полученный из базы номер "красиво" можно буквально, совершенно в ЧЕМ УГОДНО.
Шерлок Холмс и доктор Ватсон летели на воздушном шаре. Но был такой сильный туман, что они заблудились. Но вот порыв ветра, облака рассеиваются, Шерлок Холмс и доктор Ватсон приземляются и видят человека, пасущего овец.
— Скажите, любезнейший, а где мы находимся? — спрашивает доктор Ватсон.
Подумав, пастух отвечает:
— В гондоле воздушного шара.
Новый порыв ветра подхватывает шар, и Шерлок Холмс с доктором Ватсоном летят дальше.
— Ох, уж эти айтишники! — восклицает Холмс.
— Постойте, Холмс, но как вы догадались?
— Это элементарно, Ватсон! Он ответил, подумав. И дал совершенно верный, но совершенно бесполезный ответ.
Итак что мы имеем номер телефона.
1. числовой вид Bigint 8 Bytes
2. nvarchar (n) - n*2 bytes (46 bytes)
То есть ваш вариант займет в 5,75 раз больше
дальше считаете сколько займет индекс https://learn.microsoft.com/ru-ru/sql/relational-d...
.
Дальше реальная задача выбрать всех абонентов с кодом оператора 922
В общем мораль всего этого в том что данные нужно хранить в нормализованном виде, а не абы как.
То есть вы посмотрели на воздушный шар, за находящихся там решили куда им надо лететь, какой газ у них в балоне, насколько они голодны и выдали решение. Это очень паршивый подход. Куда как паршивее моего ответа
Зачем столько буков?
И кстати довольно вот редко встречал что бы телефон был просто строчкой, практически всегда на него завязана важная информация
И кстати довольно вот редко встречал что бы телефон был просто строчкой, практически всегда на него завязана важная информация
А вот у меня под рукой в данный момент CRM в которой телефон справочная информация, и не более. никаких поисков ничего. А учитывая что работа идет со всякими госниками - в строке телефона забита всякая чушь аля доб. (123) или позвать Ларису Ивановну. По этому поле типа текст там вполне ок. Что дальше?
А вот у меня под рукой в данный момент CRM в которой телефон справочная информация, и не более. никаких поисков ничего. А учитывая что работа идет со всякими госниками - в строке телефона забита всякая чушь аля доб. (123) или позвать Ларису Ивановну. По этому поле типа текст там вполне ок. Что дальше?
Ну что вам сказать, заказчик себя не любит. Любая интеграция и он на шлюзе будет отлавливать ошибки. То есть студенты не осилили, а тысячи людей сейчас мучаются.
И еще раз - вы берете свой проект где телефон очень важная информация и где надо к нему относится соотвествующе - распространяете на всю вселенную, в том числе и на текущий вопрос где по это ничего не сказано, и вообще не известно, агрументируя - что раз у вас так, значит и здесь так, и сваливаетесь на личности когда вам говорят что вселенная на вашем проекте не кончается. Вы, батенька, не телепат, вы, батенька, религиозный фанатик.
Итак подойдем комплексно.
телефон это целое число или строка символов
примеры
+ 7 (922) 000 - 00 - 00 // Свердловская область?
1-800-NO-COPYS
Второе только как строку хранить.
Первое как число
Дальше частности
8 (922) 000 - 00 - 00 // обрабатываете особо
Дальше переходим к техническим деталям
На стороне клиента вы используете html 5 input=tel с шаблоном проверки
в результате получаете
79220000000
что и отправляете на сервер
На клиенте у вас есть что то типа
{ "phone" : 79220000000 }
Немного форматирования и у вас снова + 7 (922) 000 - 00 - 00
Кроме того поищите что то типа Phone validator для вашего фреймворка, думаю найдется
Апдейт
Итак посмотрел на ваши вопросы, держите компонент
https://madewithvuejs.com/vuephonenumberinput
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для получения отредактированных номеров вам необходимо использовать функцию
filter_var()с флагомFILTER_SANITIZE_NUMBER_INT. Этот флаг позволяет удалить все символы, кроме цифр, из строки, что позволяет получить только числовое значение.Пример использования:
Таким образом, после применения этой функции к вашему номеру телефона, вы получите отредактированный номер, содержащий только цифры. Однако, учтите, что этот метод не проводит никакой валидации номера, поэтому перед использованием его важно убедиться, что номер соответствует ожидаемому формату.
Для получения отредактированных номеров в PHP, вы можете использовать функцию preg_replace() в сочетании с регулярными выражениями. Вот пример кода, который позволит вам получить отредактированные номера:
php$phone_number = '(123) 456-7890';
$edited_phone_number = preg_replace('/\D/', '', $phone_number);
echo $edited_phone_number; // Выведет: 1234567890
В данном примере мы используем регулярное выражение '/\D/' для удаления всех символов, кроме цифр, из строки с номером телефона. Функция preg_replace() заменяет все нецифровые символы на пустую строку, тем самым оставляя только цифры.
Если вам нужно провести более сложную обработку номера телефона, например, добавить дополнительные символы или форматирование, вы можете настроить регулярное выражение соответствующим образом.
Не забывайте проверять входные данные на корректность перед их обработкой, чтобы избежать ошибок и непредвиденного поведения вашего кода.