duffleman / vrm
将车辆注册标记(VRM)进行强制转换、验证和美化
Requires
- php: >=7.0
This package is auto-updated.
Last update: 2023-10-08 13:34:45 UTC
README
将车辆注册标记(VRM)进行强制转换、验证和美化。目前,仅支持英国DVLA注册车牌格式。如果您希望看到其他驾驶机构格式的支持,请提交问题 - 我很愿意与您合作以实现这一点。
<?php require_once('vendor/autoload.php'); use Duffleman\VRM\VRM; var_dump(VRM::coerce('Lbo7 se0')); // => [{ format: 'gb_2001', vrm: 'LB07SEO', prettyVrm: 'LB07 SEO' }] var_dump(VRM::coerce('Lbo7 se0', ['gb_2001'])); // => [{ format: 'gb_2001', vrm: 'LB07SEO', prettyVrm: 'LB07 SEO' }] var_dump(VRM::coerce('Lbo7 se0', ['gb_1903'])); // => [] var_dump(VRM::info('LB07SEO')); // => { format: 'gb_2001', vrm: 'LB07SEO', prettyVrm: 'LB07 SEO' } var_dump(VRM::info('LB07SEO', 'gb_2001')); // => { format: 'gb_2001', vrm: 'LB07SEO', prettyVrm: 'LB07 SEO' } var_dump(VRM::info('LB07SEO', 'gb_1903')); // => null $mark = VRM::coerce('gf09erj'); echo($mark->prettyVrm); // GF09 ERJ
安装
$ composer install
API
VRM::coerce($input[, $allowedFormats])
将输入强制转换为可能代表的一组VRM。有关为什么需要此操作,请参阅以下更多信息。
返回的数组包含每种给定格式的VRM详细信息,按可能性排序,最可能的格式为第一个值。
如果指定了允许的格式,则强制转换将仅限于这些格式。任何其他格式都不会进行检查。
如果输入无效或无法转换为检查的任何格式,则返回空数组。
如果允许的格式中任何格式未知,则抛出异常。
VRM::info($normalizedVRM[, $format])
验证给定的VRM是否与已知格式之一匹配,并返回相关的VRM详细信息。仅接受规范化VRM。
如果指定了格式,则仅检查该格式。
如果VRM不匹配检查的任何格式,则返回null。
如果提供的格式未知,则抛出异常。
备注
格式
已知格式用以下字符串引用
gb_1903
-AB 1234
- 根据“汽车法案”首次发行的车牌gb_1932
-ABC 123
- 在上述格式开始用尽后gb_1963
-ABC 123A
- 同上gb_1983
-A123 ABC
- 同上gb_2001
-AB12 ABC
- 当前的GB格式ni_1903
-AZ 1234
- 大约相当于gb_1903
ni_1966
-AAZ 1234
- 类似于gb_1932
,当前的NI格式diplomatic
-123 D 123
- 用于外交官(D
)和授权人员(X
)military
-AB 12 AB
- 用于军用车辆
VRM详细信息
返回的VRM详细信息对象包括以下信息
{ format: 'gb_2001', // required, string - format referenced as-above vrm: 'LB07SEO', // required, string - vrm in upper case, no spaces, no special chars, etc. prettyVrm: 'LB07 SEO', // optional, string - vrm spaced as legally defined }
随着时间的推移,可能会向此对象添加更多信息。这些更改不会被视为“破坏性”。
强制转换
英国注册车牌使用一种特别官方的字体,由查尔斯·赖特设计。奇怪的是,它为I
和1
以及O
和0
使用完全相同的物理形状。这意味着确切的VRM可能是模糊的,人们经常将VRM输入到表格中。此外,这也给自动车牌识别(ANPR)系统带来了一些困难。
coerce
方法处理这个问题。它返回一个数组,因为(偶尔)可能存在多个格式。
返回的数组按原始输入排序,如果它是有效的,然后是其他有效选项,较新的格式排在前面。不过,这种行为可能会改变,所以不要依赖它。
可能添加的内容
如有需求,还可以提供以下两个功能:
- 标准化:对任意字符串输入进行标准化处理,而不强制转换(这实际上已经在内部发生)
- 扩展
info
:公开给定VRM中包含的数据 - 例如,2001年英国格式包含关于注册地区和年份的信息
数据源
- CVPG的PDF文件 - 最后更新于2003年10月
- 维基百科上的文章 - 最后更新于2016年3月
支持
请在此存储库中提交一个问题。
作者
- James Billingham james@jamesbillingham.com
- George Miller george@duffleman.co.uk
许可证
MIT许可证 - 请参阅LICENSE文件