%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/main/lib/phonenumber/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/main/lib/phonenumber/shortnumberformatter.php |
<?php namespace Bitrix\Main\PhoneNumber; /** * Formatter for invalid short numbers, like 32-12-43, just to make them look pretty. * @package Bitrix\Main\PhoneNumber */ class ShortNumberFormatter { protected static $templates = [ 3 => 'x-xx', 4 => 'xx-xx', 5 => 'x-xx-xx', 6 => 'xx-xx-xx', 7 => 'xxx-xx-xx' ]; /** * Pretty prints some invalid short number. * @param PhoneNumber $phoneNumber Phone number. * @return string */ public static function format(PhoneNumber $phoneNumber) { $rawNumber = $phoneNumber->getNationalNumber(); $template = static::$templates[strlen($rawNumber)]; if(!$template) { return $rawNumber; } $pattern = preg_replace("/[^x]/", "", $template); $pattern = str_replace("x", "(\\d)", $pattern); $pattern = "/" . $pattern . "/"; $format = preg_replace_callback( "/x/", function () { static $i = 0; return "$" . ++$i; }, $template ); $result = preg_replace($pattern, $format, $rawNumber); if($phoneNumber->getExtensionSeparator()) { $result .= $phoneNumber->getExtensionSeparator() . " " . $phoneNumber->getExtension(); } return $result; } /** * Return true if the phone number could be formatted using this formatter and false otherwise. * @param PhoneNumber $phoneNumber Phone number. * @return bool */ public static function isApplicable(PhoneNumber $phoneNumber) { if($phoneNumber->isValid()) return false; $rawNumber = $phoneNumber->getNationalNumber(); return preg_match("/^\d{3,7}$/", $rawNumber); } }