[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка номера телефона
segazav
Всем доброго дня!

Ребята, подскажите как из номеров телефона удалить все лишние символы (скобки, тире, точки, пробелы и т.п., чтобы остались только цифры) и убрать код страны (+7 или 8).
killer8080
Цитата (segazav @ 13.10.2014 - 14:41)
как из номеров телефона удалить все лишние символы (скобки, тире, точки, пробелы и т.п., чтобы остались только цифры)

$phone = preg_replace('#\D+#', '', $phone);

Цитата (segazav @ 13.10.2014 - 14:41)
и убрать код страны (+7 или 8).

а зачем его убирать? Как потом восстановить информацию о стране?
segazav
Ну мне просто нужно создать черный список номеров телефона для сайта, а некоторые указывают "+7" некоторые "8", а некоторые вообще не указывают код страны.
killer8080
Цитата (segazav @ 13.10.2014 - 15:22)
некоторые указывают "+7" некоторые "8", а некоторые вообще не указывают код страны.

может просто обязать всех использовать только международный формат?
segazav
Это конечно правильно, НО в базе уже около 20 000 номеров и все по разному записаны.
vital
preg_replace('/[^\d]/')

Удалит все кроме цифр

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
walerus
Цитата (segazav @ 13.10.2014 - 11:22)
Ну мне просто нужно создать черный список номеров телефона для сайта, а некоторые указывают "+7" некоторые "8", а некоторые вообще не указывают код страны.

Если речь идет только о "наших" операторах, которые (+7 928 200 0000 ), то можно проверить длину телефона, и от нее, уже добавлять +7 если ничего нет, либо же исправлять 8 на +7...
waip
Вот нельзя просто помочь и подсказать как удалить +7 или 8 обязательно нужна вот эта котовасия зачем и почему мож у него тех задание такое.
Игорь_Vasinsky
<?php
$phone = "+7 920-234-23-12";

//вырежет всё, кроме цифр
$phone = preg_replace("#[^\d]#", "", $phone);
//удалит код страны
$phone = substr($phone, 1);
echo $phone;
?>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (waip @ 16.10.2014 - 10:50)
Вот нельзя просто помочь и подсказать как удалить +7 или 8 обязательно нужна вот эта котовасия зачем и почему мож у него тех задание такое.

потому что не все так просто, как тебе кажется. Если аудитория сайта не ограничена лишь одними россиянами, вылезут подводные камни, о которых ТС даже не догадывается.Да и ...
Цитата (killer8080 @ 13.10.2014 - 15:08)
Как потом восстановить информацию о стране?

walerus
Цитата (waip @ 16.10.2014 - 06:50)
Вот нельзя просто помочь и подсказать как удалить +7 или 8 обязательно нужна вот эта котовасия зачем и почему мож у него тех задание такое.

Это че? - защитник праводействия обрисовался? laugh.gif
dr.nomore
Цитата (segazav @ 13.10.2014 - 15:22)
Ну мне просто нужно создать черный список номеров телефона для сайта, а некоторые указывают "+7" некоторые "8", а некоторые вообще не указывают код страны.

Так создайте, для этого не надо 20000 номеров править, достаточно нормализовать ваш чОрный список и затем предоставленной читателями регуляркой проверять черное или белое. Чтобы не учитывать код страны режьте справа на 10.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.