У меня есть вход для пользователей, где они должны ввести свой номер телефона. Проблема в том, что некоторые люди пишут свой номер телефона с дефисом и пробелами в них. Я хочу поместить вход через фильтр для удаления таких вещей и сохранить только цифры в моей базе данных.Белый список в php
Я понял, что могу сделать str_replace() для пробелов и специальных символов. Однако я считаю, что лучшим подходом было бы выбрать только цифры вместо того, чтобы удалять все остальное. Я думаю, что я слышал термин «белый список» об этом.
Не могли бы вы указать мне в направлении решения этого вопроса на PHP?
Пример: Я хочу, чтобы вход "0333 452-123-4", чтобы привести "03334521234"
Спасибо!
Красиво объяснено. +1 – Boldewyn
Ваш пример кода работал очень хорошо, но мне очень трудно было его понять. Я написал: $ phone = preg_replace ('/ [^ \ d] /', '', $ phone); . Есть ли разница между этими двумя? Где я могу больше узнать о восклицательных знаках, которые вы используете? –
Единственное различие заключается в том, что я заменяю группу без цифр пустой строкой (следовательно, оператор +, чтобы указать один или несколько), а не одну цифру с пустой строкой. Очень незначительная разница. – cletus