miladk / bekrafta
v1.2.1
2017-12-28 19:04 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^6.3
- squizlabs/php_codesniffer: ^3.0
README
Bekräfta:一个PHP库,用于对个人识别号码进行常见操作,如:验证、屏蔽单个数字、计算年龄和检测性别。
支持的国家
- 丹麦(CPR-Nummer)
- 芬兰(Henkilötunnus, Personbeteckning)
- 波兰(PESEL)
- 荷兰(Burgerservicenummer) 仅验证
- 挪威(Fødselsnummer)
- 瑞典(Personnummer)
支持的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