SOURCES: php-pear-Validate_UK-carReg.php (NEW) - missing file
adamg
adamg at pld-linux.org
Tue Sep 5 00:00:40 CEST 2006
Author: adamg Date: Mon Sep 4 22:00:40 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- missing file
---- Files affected:
SOURCES:
php-pear-Validate_UK-carReg.php (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/php-pear-Validate_UK-carReg.php
diff -u /dev/null SOURCES/php-pear-Validate_UK-carReg.php:1.1
--- /dev/null Tue Sep 5 00:00:40 2006
+++ SOURCES/php-pear-Validate_UK-carReg.php Tue Sep 5 00:00:35 2006
@@ -0,0 +1,246 @@
+<?php
+
+// input must be uppercased and spaces and dashes removed
+
+function validateVehiclePre1932($input)
+{
+ if (!preg_match('/^[A-Z]{1,2}\d{1,4}$/', $input, $m)) {
+ // invalidly formed
+ return false;
+ }
+}
+
+function validateVehicle1932($input)
+{
+ if (!preg_match('/^[A-Z]{3}\d{1,3}$/', $input, $m)) {
+ // invalidly formed
+ return false;
+ }
+}
+
+function validateVehicle1950($input)
+{
+ if (!preg_match('/^\d{1,3}[A-Z]{3}\d{1,4}[A-Z]{1,3}$/', $input, $m)) {
+ // invalidly formed
+ return false;
+ }
+}
+
+function validateVehicle1963($input)
+{
+ if (!preg_match('/^([A-Z]{3})\d{1,3}([A-Z]?)$/', $input, $m)) {
+ // invalidly formed
+ return false;
+ }
+}
+
+function validateVehicle1982($input)
+{
+ if (!preg_match('/^([A-Z])\d{1,3}[A-Z]{3}$/', $input, $m)) {
+ // invalidly formed
+ return false;
+ }
+ $year = ord($m[1]) - 65;
+ if ($year > 15) {
+ // two letters per year
+ $year -= floor(($year - 15) / 2);
+ }
+ $year += 1984;
+ // is there a region list anywhere?
+ return array(
+ 'year' => $year
+ );
+}
+
+function validateVehicle2001($input)
+{
+ if (!preg_match('/^([A-Z]{2})(\d{2})([A-Z]{3})$/', $input, $m)) {
+ // invalidly formed
+ return false;
+ }
+ global $regions2001;
+ if (!isset($regions2001[$m[1][0]])) {
+ // region can't be found
+ return false;
+ }
+ $region = $regions2001[$m[1]];
+ $dvla = false;
+ for ($i = count($region['dvla']); $i--;) {
+ if (strpos($region['dvla'][$i], $m[1][1]) !== false) {
+ $dvla = $region['dvla'][$i];
+ break;
+ }
+ }
+ if ($dvla === false) {
+ // dvla office can't be found
+ return false;
+ }
+ $cur_month = date('n');
+ if ($m[2] > 50) {
+ $m[2] -= 50;
+ }
+ if ($cur_month < 3) {
+ $m[2]++;
+ }
+ if ($m[2] < 1) {
+ // invalid year
+ return false;
+ }
+ $year = 2000 + $m[2];
+ if (strpbrk($m[3], 'IQ') !== false) {
+ // invalid suffix
+ return false;
+ }
+ return array(
+ 'region' => $region['region'],
+ 'year' => 2000 + $m[2],
+ 'dvla' => $dvla
+ );
+}
+
+// source: http://en.wikipedia.org/wiki/British_car_number_plate_identifiers
+$regions2001 = array(
+ 'A' => array(
+ 'region' => 'East Anglia',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMN' => 'Peterborough',
+ 'OPRSTU' => 'Norwich',
+ 'VWXY' => 'Ipswich'
+ )
+ ),
+ 'B' => array(
+ 'region' => 'Birmingham',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Birmingham'
+ )
+ ),
+ 'C' => array(
+ 'region' => 'Cymru',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNO' => 'Cardiff',
+ 'PRSTUV' => 'Swansea',
+ 'WXY' => 'Bangor'
+ )
+ ),
+ 'D' => array(
+ 'region' => 'Deeside etc.',
+ 'dvla' => array(
+ 'ABCDEFGHJK' => 'Chester',
+ 'LMNOPRSTUVWXY' => 'Shrewsbury'
+ )
+ ),
+ 'E' => array(
+ 'region' => 'Essex and Hertfordshire',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Chelmsford'
+ )
+ ),
+ 'F' => array(
+ 'region' => 'Forest and Ferns',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOP' => 'Nottingham',
+ 'RSTUVWXY' => 'Lincoln'
+ )
+ ),
+ 'G' => array(
+ 'region' => 'Garden of England',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNO' => 'Maidstone',
+ 'PRSTUVWXY' => 'Brighton'
+ )
+ ),
+ 'H' => array(
+ 'region' => 'Hants and Dorset',
+ 'dvla' => array(
+ 'ABCDEFGHJ' => 'Bournemouth',
+ 'KLMNOPRSTUVWXY' => 'Portsmouth'
+ )
+ ),
+ 'K' => array(
+ 'region' => '',
+ 'dvla' => array(
+ 'ABCDEFGHJKL' => 'Luton',
+ 'MNOPRSTUVWXY' => 'Northampton'
+ )
+ ),
+ 'L' => array(
+ 'region' => 'London',
+ 'dvla' => array(
+ 'ABCDEFGHJ' => 'Wimbledon',
+ 'KLMNOPRST' => 'Standmore',
+ 'UVWXY' => 'Sidcup'
+ )
+ ),
+ 'M' => array(
+ 'region' => 'Manchester and Merseyside',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Manchester'
+ )
+ ),
+ 'N' => array(
+ 'region' => 'Newcastle and North',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNO' => 'Newcastle upon Tyne',
+ 'PRSTUVWXY' => 'Stockton-on-Tees'
+ )
+ ),
+ 'O' => array(
+ 'region' => 'Oxford',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Oxford'
+ )
+ ),
+ 'P' => array(
+ 'region' => 'Preston and Pennines',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRST' => 'Preston',
+ 'UVWXY' => 'Carlisle'
+ )
+ ),
+ 'Q' => array(
+ 'region' => 'Oxford',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Any - used for vehicles of unidentifiable age'
+ )
+ ),
+ 'R' => array(
+ 'region' => 'Reading',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Reading'
+ )
+ ),
+ 'S' => array(
+ 'region' => 'Scotland',
+ 'dvla' => array(
+ 'ABCDEFGHJ' => 'Glasgow',
+ 'KLMNO' => 'Edinburgh',
+ 'PRST' => 'Dundee',
+ 'UVW' => 'Aberdeen',
+ 'XY' => 'Inverness'
+ )
+ ),
+ 'V' => array(
+ 'region' => 'Vale of Severn',
+ 'dvla' => array(
+ 'ABCDEFGHJKLMNOPRSTUVWXY' => 'Worcester'
+ )
+ ),
+ 'W' => array(
+ 'region' => 'West Country',
+ 'dvla' => array(
+ 'ABCDEFGHJ' => 'Exeter',
+ 'KL' => 'Truro',
+ 'MNOPRSTUVWXY' => 'Bristol'
+ )
+ ),
+ 'Y' => array(
+ 'region' => 'Yorkshire',
+ 'dvla' => array(
+ 'ABCDEFGHJK' => 'Leeds',
+ 'LMNOPRSTU' => 'Sheffield',
+ 'VWXY' => 'Beverley'
+ )
+ )
+);
+
+?>
================================================================
More information about the pld-cvs-commit
mailing list