Данный метод заключается в том, чтобы отображать нужный формат номера телефона в зависимости от заданной маски.
Зададим массив с масками (пока только маска для украинских номеров телефона. Позже проверю ее и для российских форматов):
$formats = array( '12'=>'+############', // for +38 0XX XX XXX XX or 38 0XX XX XXX XX '10'=>'+38#########' // for 0XX XX XXX XX );
Ключ массива - это количество символов в строке, которая попадает на обработку по маске.
Дальше опишем функцию:
PhoneFormat($phone, $format, $mask = '#',$codeSplitter = '0') { $phone = preg_replace('/[^0-9]/', '', $phone); $phone = substr($phone,strpos($phone,$codeSplitter)); if (is_array($format)) { if (array_key_exists(strlen($phone), $format)) { $format = $format[strlen($phone)]; } else { return $phone; } } $pattern = '/' . str_repeat('([0-9])?', substr_count($format, $mask)) . '(.*)/'; $format = preg_replace_callback( str_replace('#', $mask, '/([#])/'), function () use (&$counter) { return '${' . (++$counter) . '}'; }, $format ); return ($phone) ? trim(preg_replace($pattern, $format, $phone, 1)) : false; }
Данная функция сначала очищает полученную строку с номером телефона от всех лишних символов (пробелы, дефисы, скобочки). Дальше мы отделяем код страны от кода оператора и самого номера (для Украины корректный формат будет +380XXXXXXXXX), но иногда пользователи забывают вбить один из символов: "+","3","8" - в любом сочетании, поэтому код страны отсекаем, а его добавляем дальше уже маской.
Дальше функция строит номер телефона в зависимости от прописанной маски.
Использование:
echo PhoneFormat('0987654321',$formats, '#'); echo PhoneFormat('+30987654321',$formats, '#'); echo PhoneFormat('+380987654321',$formats, '#'); echo PhoneFormat('30987654321',$formats, '#'); echo PhoneFormat('80987654321',$formats, '#'); echo PhoneFormat('+80987654321',$formats, '#'); // Все варианты вернут значение +38098765432
Теперь эту функцию можно использовать для вывода ссылки на совершение звонка:
<?$phone = '+3(098)765-43-21';?> <a href="tel:<?=PhoneFormat($phone)?>">$phone</a>
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.