此包已被废弃,不再维护。没有建议的替代包。

将车辆注册标记(VRM)进行强制转换、验证和美化

0.1.1 2017-01-17 20:11 UTC

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
}

随着时间的推移,可能会向此对象添加更多信息。这些更改不会被视为“破坏性”。

强制转换

英国注册车牌使用一种特别官方的字体,由查尔斯·赖特设计。奇怪的是,它为I1以及O0使用完全相同的物理形状。这意味着确切的VRM可能是模糊的,人们经常将VRM输入到表格中。此外,这也给自动车牌识别(ANPR)系统带来了一些困难。

coerce方法处理这个问题。它返回一个数组,因为(偶尔)可能存在多个格式。

返回的数组按原始输入排序,如果它是有效的,然后是其他有效选项,较新的格式排在前面。不过,这种行为可能会改变,所以不要依赖它。

可能添加的内容

如有需求,还可以提供以下两个功能:

  • 标准化:对任意字符串输入进行标准化处理,而不强制转换(这实际上已经在内部发生)
  • 扩展 info:公开给定VRM中包含的数据 - 例如,2001年英国格式包含关于注册地区和年份的信息

数据源

支持

请在此存储库中提交一个问题。

作者

许可证

MIT许可证 - 请参阅LICENSE文件