2015-12-02 3 views
-1

Я столкнулся с проблемой, в которой ситуация заключается в том, что у меня есть роль клиента на моем веб-сайте, для которого я должен сохранить их номера телефонов и альтернативные телефонные номера, а потому, что клиенты принадлежат США, для чего нам нужно поиграть тире в своих телефонных номерах. например: 111-222-3333. Я также интегрировал реферальную систему на сайте, на котором я могу ссылаться на друзей, используя их телефонные номера. Я могу отправить реферал на несколько телефонных номеров одновременно. Например: 111-222-3333, 111-333-444, 444-233-9330 Но условие состоит в том, что номер телефона, который мы указываем, не должен быть в профиле клиента (пользователь не должен быть уже зарегистрирован с этим номером). Проблема возникает, когда номер телефона клиента сохраняется с тире, но поскольку клиент может ссылаться на несколько номеров, разделенных запятой, из-за которых я не могу предоставить шаблон тире, чтобы заполнить номер телефона. Но теперь клиент может отправить реферал на телефон номер, который не разбит как (1112223333), который, если кто-то уже зарегистрирован с тем же номером телефона и имеет тире (111-222-3333). В таком случае он не будет соответствовать уже зарегистрированному номеру телефона. И проблема заключается в отображении нескольких телефонных номеров в тире во время обращения. Кто-нибудь может дать решение для этого. Как отображать несколько телефонных номеров с тире. Извините, если у вас возникнут проблемы с пониманием концепции, но я объясню это еще раз. Любая помощь будет оценена по достоинству. Извините, я отредактировал этот вопрос. Я не ответил на настоящую проблему.Отображение нескольких телефонных номеров с тире

+0

Вы не должны хранить отформатированный номер телефона, а только сами номера и форматировать их, но вы хотите на стороне клиента. – simdrouin

+0

Да, но затем я должен переопределить файлы tpl на всем сайте, где когда-либо отображается номер телефона, чтобы отобразить его в тишины, потому что это требование клиента. – Mandeep

+0

. Вы можете хранить в своей базе данных только числа, получать их и создавать рассчитанные свойства на объекте памяти, который отражает формат, который вы хотите, например FormattedPhoneNumber, который возвращает свойство PhoneNumber, но форматирует способ, которым вы хотите, и всегда используйте этот формат FormattedPhoneNumber для привязки к вашим формам. – simdrouin

ответ

0

Кажется, что вы можете исправить проблему, удалив номера телефонов всех нечисловых символов перед их сопоставлением.

Вы можете раздеться все нечисловые символы из строки с помощью preg_replace следующим образом:

$str = preg_replace('/[^0-9]+/', '', $str); 

Вот краткий пример comparaison:

<?php 

$phoneNumber1 = "(418) 515-4184"; 
$phoneNumber2 = "4185154184"; 
if (preg_replace('/[^0-9]+/', '', $phoneNumber1) == preg_replace('/[^0-9]+/', '', $phoneNumber1)) 
{ 
    echo "Phone numbers are the same"; 
} 
else 
{ 
    // do stuff 
} 

?> 

Надежда, что помогает!

+0

У меня получилось, но потребуется много времени, чтобы получить все номера телефонов всех клиентов по всему сайту, а затем заменить их и сравнить их друг с другом. – Mandeep

Смежные вопросы