duffleman / dln
此包已弃用,不再维护。未建议替代包。
生成并验证驾驶执照号码(DLN)
0.1.0
2016-03-19 23:21 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- symfony/var-dumper: ^3.0
This package is auto-updated.
Last update: 2023-10-08 13:42:41 UTC
README
生成并验证驾驶执照号码(DLN)。目前,仅支持英国DVLA颁发的执照。如果您想看到支持其他类型执照的添加,请提出问题 - 我很愿意与您合作实现这一点。
<?php use Duffleman\DLN\DLN; require_once('vendor\autoload.php'); $user1 = [ 'familyName' => 'Morgan', 'personalName' => 'Sarah Meredyth', 'birthDate' => '1964-07-05', 'sex' => 'F', ]; $user2 = [ 'familyName' => 'Gardner', 'personalName' => 'Charles', 'birthDate' => '1969-05-10', 'sex' => 'M', ]; $finalChars = '9IJ'; $completeDLN = 'MORGA657054SM9IJ'; dump(DLN::generate($user1)); // => MORGA657054SM dump(DLN::generate($user1, $finalChars)); // => MORGA657054SM9IJ dump(DLN::generate($user2)); // => GARDN605109C9 dump(DLN::validate($completeDLN)); // => true dump(DLN::validate($completeDLN, $user1)); // => true dump(DLN::validate($completeDLN, $user2)); // => false
安装
$ composer require duffleman/dln
API
DLN::generate(array $userDetails[, $finalCharacters])
根据给定的用户详细信息生成DLN,可选地添加末尾的字符(因为这些字符不能准确生成)。
如果没有提供末尾字符,输出将不是一个完整的DLN,并在DLN.validate
函数中验证失败。
返回一个长度为13或16个字符的字符串,具体取决于是否提供了末尾字符。
如果用户详细信息或末尾字符无效,则抛出异常。
DLN::validate($dln[, array $userDetails])
验证一个完整的DLN是否有效,可选地检查DLN的前13个字符是否与给定的用户详细信息匹配。
返回一个布尔值,指示DLN是否有效。
如果用户详细信息无效,则抛出异常。
说明
当提供用户详细信息时,必须严格按照以下指定进行
[ 'familyName' => 'von Neumann', // required, string - can contain spaces 'personalName' => 'John', // optional, string - first names, including middle names 'birthDate' => '1969-05-10', // required, string - YYYY-MM-DD date 'sex' => 'M', // required, string, (M|F) - whatever the person has stated to the DVLA ]
DLN遵循相对严格的格式,长度正好为16个字符。只有DLN的前13个字符可以准确生成 - 剩下的3个字符不能生成,必须单独提供。
末尾字符也遵循严格的格式,长度正好为3个字符。这些字符通常附加到生成的DLN部分,以形成一个完整且有效的DLN。
支持
请在存储库中提出问题。
作者
- George Miller github@duffleman.co.uk
- James Billingham james@jamesbillingham.com
许可证
MIT许可 - 请参阅LICENSE文件