English | Русский
Данная библиотек состоит из статических методов, которые позволят вам легко обрабатывать, обнаруживать и получать телефонные номера.
Репозиторий проекта: https://github.com/cs-eliseev/helpers-phone
DEMO
switch (true) {
case Phone::is($phone):
break;
case Phone::exist($phone):
$phone = Phone::extract($phone);
break;
default:
new Exception('Phone is not exist');
}
$phone = Phone::format($phone);
CSE HELPERS - это набор из небольших библиотек с простыми функциями написанных на PHP специально для вас.
Несмотря на повсеместное использование PHP в качестве основного языка для WEB разработки, его зачастую недостаточно. PHONE CSE HELPERS, предоставляет дополнительные статические методы, позволяющие вам более эффективно работать с телефонными номерами.
CSE HELPERS создан для быстрой разработки веб-приложений.
Список библиотек CSE Helpers:
- Array CSE helpers
- Cookie CSE helpers
- Date CSE helpers
- Email CSE helpers
- IP CSE helpers
- Json CSE helpers
- Math Converter CSE helpers
- Phone CSE helpers
- Request CSE helpers
- Session CSE helpers
- Word CSE helpers
Ниже представлена информация об установке и перечне команд с примерами их использования.
Самая последняя версия проекта доступна здесь.
Чтобы установить последнюю версию проекта, выполните следующую команду в терминале:
composer require cse/helpers-phone
Или добавьте следующее содержимое в файл composer.json:
{
"require": {
"cse/helpers-phone": "*"
}
}
Добавить этот репозиторий локально можно следующим образом:
git clone https://github.com/cs-eliseev/helpers-phone.git
Скачать последнюю версию проекта можно здесь.
Данный класс использует статические методы, которые удобно использовать в любом проекте. Смотрите пример examples-phone.php.
Нобор данных использованный в примерах:
$numbers = [
6677,
4456677,
'+1 233 44 566 77',
'(233) 445-6677',
'((233) 445-6677',
2334456677,
'233 445-6677',
'233-445-6677',
'(233)4456677',
'+123344566-77',
'1-2334456677',
'233-445-66-77 -Hello!',
'+1 - 2334456677'
];
Очистить телефонный номер от символов
Пример:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::clear($phone);
}
/**
* [
* '6677',
* '4456677',
* '12334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '12334456677',
* '12334456677',
* '2334456677',
* '12334456677'
* ]
*/
Отформатировать телефонный номер
Пример:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::format($phone);
}
/**
* [
* '66-77',
* '445-66-77',
* '+1 (233) 445-66-77',
* '(233) 445-66-77',
* '(233) 445-66-77',
* '(233) 445-66-77',
* '(233) 445-66-77',
* '(233) 445-66-77',
* '(233) 445-66-77',
* '+1 (233) 445-66-77',
* '+1 (233) 445-66-77',
* '(233) 445-66-77',
* '+1 (233) 445-66-77',
* ]
*/
Не использовать маску:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::format($phone, Phone::FORMAT_DEFAULT, false);
}
/**
* [
* '6677',
* '4456677',
* '+1 (233) 445-66-77',
* '+ (233) 445-66-77',
* '+ (233) 445-66-77',
* '+ (233) 445-66-77',
* '+ (233) 445-66-77',
* '+ (233) 445-66-77',
* '+ (233) 445-66-77',
* '+1 (233) 445-66-77',
* '+1 (233) 445-66-77',
* '+ (233) 445-66-77',
* '+1 (233) 445-66-77',
* ]
*/
Изменить формат телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::format($phone, '$3-$4-$5');
}
/**
* [
* '66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* '445-66-77',
* ]
*/
Изменить паттерн формата телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::format($phone, '$1-$2-$3-$4-$5', true, '(.{2})(.{2})(.{2})(.{4})(.*)');
}
/**
* [
* '66-77',
* '4-45-66-77',
* '1-2334-45-66-77',
* '2334-45-66-77',
* '2334-45-66-77',
* '2334-45-66-77',
* '2334-45-66-77',
* '2334-45-66-77',
* '2334-45-66-77',
* '1-2334-45-66-77',
* '1-2334-45-66-77',
* '2334-45-66-77',
* '1-2334-45-66-77',
* ]
*/
Изменить группировку цифр в телефонном номере:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::format($phone, '$1 $2 $3 $4-$5-$6', true,'(.{2})(.{2})(.{2})(.{2})(.{2})(.*)', [
'$6' => '1$',
'$5' => '2$',
'$4' => '3$',
'$3' => '4$',
'$2' => '5$',
'$1' => '6$'
]);
}
/**
* [
* '66-77',
* '4 45-66-77',
* '1 23 34 45-66-77',
* '23 34 45-66-77',
* '23 34 45-66-77',
* '23 34 45-66-77',
* '23 34 45-66-77',
* '23 34 45-66-77',
* '23 34 45-66-77',
* '1 23 34 45-66-77',
* '1 23 34 45-66-77',
* '23 34 45-66-77',
* '1 23 34 45-66-77',
* ]
*/
Скрыть телефонный номер
Пример:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::hide($phone);
}
/**
* [
* '***-**-77',
* '***-**-77',
* '+1 (233) ***-**-77',
* '(233) ***-**-77',
* '(233) ***-**-77',
* '(233) ***-**-77',
* '(233) ***-**-77',
* '(233) ***-**-77',
* '(233) ***-**-77',
* '+1 (233) ***-**-77',
* '+1 (233) ***-**-77',
* '(233) ***-**-77',
* '+1 (233) ***-**-77',
* ]
*/
Изменить формат скрытия телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::hide($phone, '8-*** ***-**-$6');
}
/**
* [
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* '8-*** ***-**-77',
* ]
*/
Проверка на телефонный номер
Пример:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::is($phone);
}
/**
* [
* false,
* true,
* false,
* true,
* false,
* true,
* true,
* true,
* true,
* true,
* true,
* false,
* false
* ]
*/
Изменить проверку разменера минимальной длинны телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::is($phone, 11);
}
/**
* [
* false,
* false,
* false,
* false,
* false,
* false,
* false,
* false,
* false,
* true,
* true,
* false,
* false
* ]
*/
Изменить проверку максимальной длинны телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::is($phone, Phone::SIZE_MIN, 10);
}
/**
* [
* false,
* true,
* false,
* false,
* false,
* true,
* false,
* false,
* false,
* false,
* false,
* false,
* false
* ]
*/
Проверить существование телефонного номера
Пример:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::exist($phone);
}
/**
* [
* false,
* true,
* true,
* true,
* true,
* true,
* true,
* true,
* true,
* true,
* true,
* true,
* true
* ]
*/
Изменить проверку разменера минимальной длинны телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::exist($phone, 11);
}
/**
* [
* false,
* false,
* true,
* false,
* false,
* false,
* false,
* false,
* false,
* true,
* true,
* false,
* true
* ]
*/
Изменить проверку максимальной длинны телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::exist($phone, Phone::SIZE_MIN, 10);
}
/**
* [
* false,
* true,
* false,
* true,
* true,
* true,
* true,
* true,
* true,
* false,
* false,
* true,
* false
* ]
*/
Получить телефонный номер
Пример:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::extract($phone);
}
/**
* [
* null,
* '4456677',
* '12334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '12334456677',
* '12334456677',
* '2334456677',
* '12334456677'
* ]
*/
Изменить проверку разменера минимальной длинны телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::extract($phone, 11);
}
/**
* [
* null,
* null,
* '12334456677',
* null,
* null,
* null,
* null,
* null,
* null,
* '12334456677',
* '12334456677',
* null,
* '12334456677'
* ]
*/
Изменить проверку максимальной длинны телефонного номера:
$phones = [];
foreach($numbers as $phone)
{
$phones[] = Phone::extract($phone, Phone::SIZE_MIN, 10);
}
/**
* [
* null,
* '4456677',
* null,
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* '2334456677',
* null,
* null,
* '2334456677',
* null
* ]
*/
PHPUnit используется для модульного тестирования. Данные тесты гарантируют, что методы класса выполняют свою задачу.
Подробную документацию по PHPUnit можно найти по адресу: https://phpunit.de/documentation.html.
Чтобы запустить тесты выполните:
phpunit PATH/TO/PROJECT/tests/
Чтобы сформировать отчет о покрытии тестами кода, необходимо выполнить следующую команду:
phpunit --coverage-html ./report PATH/TO/PROJECT/tests/
Чтобы использовать настройки по умолчанию, достаточно выполнить:
phpunit --configuration PATH/TO/PROJECT/phpunit.xml
Вы можите поддержать данный проект здесь. Вы также можете помочь, внеся свой вклад в проект или сообщив об ошибках. Даже высказывать свои предложения по функциям - это здорово. Все, что поможет, высоко ценится.
PHONE CSE HELPERS это PHP-библиотека с открытым исходным кодом распространяемая по лицензии MIT. Для получения более подробной информации, пожалуйста, ознакомьтесь с лицензионным файлом.
GitHub @cs-eliseev