baraja-core/phone-number

此软件包的最新版本(v1.0.8)没有提供许可信息。

一个简单的电话号码处理软件包。

v1.0.8 2022-09-30 07:42 UTC

This package is auto-updated.

Last update: 2024-08-30 01:17:52 UTC


README

查看捷克语版本

在PHP中没有简单的方法来验证和格式化电话号码,所以我编写了一个简单的库来实现这个功能,该库没有依赖项,但仍能处理这个角色。

目标是检查电话号码的格式,或者将其转换为基本规范形式(总是有效的)。

安装

简单地使用composer

$ composer require baraja-core/phone-number

如何使用这个库

这个工具的原则是格式化和验证来自用户或你无法控制其来源的电话号码。

最常见的用途是纠正电话号码格式

$original = '+420 777123456';
$formatted = \Baraja\PhoneNumber\PhoneNumberFormatter::fix($original);

echo $original . '<br>';
echo $formatted;

该函数修正了数字格式,并返回字符串 +420 777 123 456

如果没有指定前缀,则默认为 +420 前缀。您可以使用第二个参数更改默认偏好设置

// returns: +421 777 123 456
\Baraja\PhoneNumber\PhoneNumberFormatter::fix('+420 777123456', 421);

只有当用户没有输入电话区号且无法自动检测时,才会覆盖电话区号。

输入和输出格式

输入字符串可以看起来(几乎)任何方式。内置算法可以自动删除非有效字符(例如,一些用户会在电话号码旁边写一些注释,这些注释将被自动删除)。所以你不必担心输入的格式,但输出总是保持一致。

输出总是看起来一样(它被规范化为规范格式)。

一般格式是

   +420 777 123 456
     | \_________/
  Prefix |
      National number

如果您提交了无效输入(或无法自动纠正的输入),则会抛出异常。

异常处理

如果无法安全地将号码规范化为基本形式,或者号码不存在,则抛出 \InvalidArgumentException 异常。

如果您希望将异常转换为布尔值,请使用内置的资产验证器

\Baraja\PhoneNumber\PhoneNumberValidator::isValid('123'); // false
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('777123456'); // true
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 777123456'); // true
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 777 123 456'); // true
\Baraja\PhoneNumber\PhoneNumberValidator::isValid('+420 77 712 34 56'); // true