miladk/bekrafta

验证个人号码

v1.2.1 2017-12-28 19:04 UTC

This package is not auto-updated.

Last update: 2024-09-29 01:32:59 UTC


README

Bekräfta:一个PHP库,用于对个人识别号码进行常见操作,如:验证、屏蔽单个数字、计算年龄和检测性别。

支持的国家

  • 丹麦(CPR-Nummer)
  • 芬兰(Henkilötunnus, Personbeteckning)
  • 波兰(PESEL)
  • 荷兰(Burgerservicenummer) 仅验证
  • 挪威(Fødselsnummer)
  • 瑞典(Personnummer)

Supported Countries

支持的PHP版本

  • PHP 7.0
  • PHP 7.1
  • PHP 7.2

安装

composer require miladk/bekrafta

使用

此库为所有支持的国家提供统一的接口。开发者无需使用特定国家的类,而有一个类可以检测并使用国家,并提供相应的值。

use Bekrafta\PersonalNumber;

$oPN = new PersonalNumber('811228-9874');

// True on successful detection, false otherwise.
// True also means a valid personal number.
$oPN->detect();

// 811228-****
$oPN->getCensored();

// 35
$oPN->getAge();

// m
$oPN->getGender();

// 1981
$oPM->getYear();

// 1981-12-28
$oPM->getBirthday()

或者如果您只需要特定国家,您也可以使用该特定国家。

use Bekrafta\Sweden;

$oSweden = new Sweden('811228-9874');

// True on valid personal number, false otherwise.
$oSweden->validate();

// 811228-****
$oSweden->getCensored();

// 35
$oSweden->getAge();

// m
$oSweden->getGender();

// 1981
$oSweden->getYear();

// 1981-12-28
$oSweden->getBirthday();

瑞典扩展

在瑞典,一些公司会将世纪数字作为个人号码的一部分,或者删除出生日期和四个其他数字之间的符号。这些变化不属于官方标准的一部分。因此,我包含了两个瑞典的类

  • 瑞典:支持官方标准格式。
  • SwedenExtended:支持流行的非标准格式。这有两个额外的功能
    • removeLeadingCenturies():从个人号码中删除前导的19或20。
    • removeNonNumbers():从个人号码中删除非数字字符。

丹麦严格

然而,2007年1月1日出生的男性在这个系统下的可用序列号已经用尽,自2007年10月起,个人识别号码不再总是通过校验位进行验证。这一点已经被预测并在几年前就宣布了。因此,大多数IT系统都被假定已更新以接受校验位验证失败的数据。— Wikipedia

因此,我认为对丹麦个人号码进行校验没有意义,因为我们将会得到错误的否定结果。但是,如果您想使用校验,您可以使用DenmarkStrict类对个人号码进行校验,但您将会得到错误的肯定结果。

许可证

MIT