@ikfah012
Не самый умный парень в этом чате

Как преобразовать строку php?

Добрый день.
У меня есть две таблицы. В каждой из таблиц есть поле 'phone', которое содержит номер телефона, но проблема в том, что в таблице А телефон записан в виде "+79876543210", а в таблице Б в виде "+7 (987) 654-32-10".
Мне нужно брать номер из таблицы А и проверять на совпадения в таблице Б.
Какие могут быть варианты?
Я рассматривал либо преобразовывать для запроса номер вида А к номеру Б.
Или если есть возможность каким-нибудь простым способом привести 5500+ номеров в таблице Б к виду номеров из таблицы А.
Собственно сам вопрос - как преобразовать для запроса номер вида А в номер вида Б?
Или же как пройтись по таблице Б и преобразовать все номера?
  • Вопрос задан
  • 627 просмотров
Решения вопроса 1
@yourbatya
Разрабатываю разработки
Короче, Максим, я тебя спас и в благородство играть не буду: выполнишь для меня пару функций - и мы в расчёте. Заодно посмотрим, как быстро у тебя башка после изучения php прояснится. А по твоей теме я уже разузнал. Хрен его знает, на кой ляд тебе так данные хранить сдалось, но я в чужие дела не лезу. Хочешь так хранить - значит есть за что...
В предыдущем вопросе ты говорил, что получаешь json от яндекс.телефонии, судя по всему ты ещё с ней мучаешься. Яндекс передаёт данные в формате "+79876543210", а в ответе господину Владимир @ ты упомянул, что получаешь телефоны с формы на сайте, и видимо с помощью плейсхолдера в виде "+7 (987) 654-32-10".
А теперь ты пытаешься зачем-то сравнивать данные яндекса и с твоего сайта.
Короче, если всё так, то сделай в файле, который у тебя пишет данные в бд из формы на сайте, следующее:
$phone = preg_replace("/[^+0-9]/s", "", strip_tags(trim($_POST['phone'])));
Где $phone - это, соответственно, переменная, которая принимает в себя данные из поля "телефон" в форме.
Так ты получишь в твоей бд телефоны вида +79876543210. И затем уже сравнивай их сколько влезет,
Это самый простой вариант :)
Если тебе нужно пройтись по базе и видоизменить все телефоны, то сделай отдельный вопрос.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
samodum
@samodum
Какой вопрос - такой и ответ
Надо из строки удалить все символы кроме цифр и сравнивать очищенные номера.
Можно через replace, а можно через регулярки.
Очевидно же.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы