%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/main/lib/phonenumber/tools/ |
Current File : /home/bitrix/www/bitrix/modules/main/lib/phonenumber/tools/possiblelengthfield.php |
<?php namespace Bitrix\Main\PhoneNumber\Tools; use Bitrix\Main\SystemException; class PossibleLengthField extends XmlField { public function decodeValue($value) { return static::parsePossibleLength($value); } /** * Parses possible length field and returns corresponding array of possible lengths. * @param string $possibleLength Something like "3,5,7", or "[7-9]", or "6,[8-10]" * @return array Returns array of possible lengths. I.e. [3, 5, 7], or [7, 8, 9], or [6, 8, 10]. */ public static function parsePossibleLength($possibleLength) { $result = array(); $tokens = explode(',', $possibleLength); foreach ($tokens as $token) { if(preg_match('/^\d+$/', $token)) { $result[] = (int)$token; } else if(preg_match('/^\[(\d+)-(\d+)\]$/', $token, $matches)) { $start = $matches[1]; $end = $matches[2]; $result = array_merge($result, range($start, $end)); } else { throw new SystemException("Unrecognized token: ", $token); } } return $result; } }