| 148 |
lars |
1 |
<?php
|
|
|
2 |
|
|
|
3 |
namespace Faker\Provider\pl_PL;
|
|
|
4 |
|
|
|
5 |
use Faker\Provider\Base;
|
|
|
6 |
|
|
|
7 |
/**
|
|
|
8 |
* Generator of Polish vehicle registration numbers.
|
|
|
9 |
* {@link} http://prawo.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20170002355
|
|
|
10 |
* {@link} https://pl.wikipedia.org/wiki/Tablice_rejestracyjne_w_Polsce#Tablice_standardowe
|
|
|
11 |
*/
|
|
|
12 |
class LicensePlate extends Base
|
|
|
13 |
{
|
|
|
14 |
/**
|
|
|
15 |
* @var array list of Polish voivodeships and respective vehicle registration number prefixes.
|
|
|
16 |
*/
|
|
|
17 |
protected static $voivodeships = [
|
|
|
18 |
'dolnośląskie' => 'D',
|
|
|
19 |
'kujawsko-pomorskie' => 'C',
|
|
|
20 |
'lubelskie' => 'L',
|
|
|
21 |
'lubuskie' => 'F',
|
|
|
22 |
'łódzkie' => 'E',
|
|
|
23 |
'małopolskie' => 'K',
|
|
|
24 |
'mazowieckie' => 'W',
|
|
|
25 |
'opolskie' => 'O',
|
|
|
26 |
'podkarpackie' => 'R',
|
|
|
27 |
'podlaskie' => 'B',
|
|
|
28 |
'pomorskie' => 'G',
|
|
|
29 |
'śląskie' => 'S',
|
|
|
30 |
'świętokrzyskie' => 'T',
|
|
|
31 |
'warmińsko-mazurskie' => 'N',
|
|
|
32 |
'wielkopolskie' => 'P',
|
|
|
33 |
'zachodniopomorskie' => 'Z',
|
|
|
34 |
];
|
|
|
35 |
|
|
|
36 |
/**
|
|
|
37 |
* @var array list of special vehicle registration number prefixes.
|
|
|
38 |
*/
|
|
|
39 |
protected static $specials = [
|
|
|
40 |
'army' => 'U',
|
|
|
41 |
'services' => 'H',
|
|
|
42 |
];
|
|
|
43 |
|
|
|
44 |
/**
|
|
|
45 |
* @var array list of Polish counties and respective vehicle registration number prefixes.
|
|
|
46 |
*/
|
|
|
47 |
protected static $counties = [
|
|
|
48 |
'D' => [
|
|
|
49 |
'Jelenia Góra' => ['J'],
|
|
|
50 |
'Legnica' => ['L'],
|
|
|
51 |
'Wałbrzych' => ['B'],
|
|
|
52 |
'Wrocław' => ['W', 'X'],
|
|
|
53 |
'bolesławiecki' => ['BL'],
|
|
|
54 |
'dzierżoniowski' => ['DZ'],
|
|
|
55 |
'głogowski' => ['GL'],
|
|
|
56 |
'górowski' => ['GR'],
|
|
|
57 |
'jaworski' => ['JA'],
|
|
|
58 |
'jeleniogórski' => ['JE'],
|
|
|
59 |
'kamiennogórski' => ['KA'],
|
|
|
60 |
'kłodzki' => ['KL'],
|
|
|
61 |
'legnicki' => ['LE'],
|
|
|
62 |
'lubański' => ['LB'],
|
|
|
63 |
'lubiński' => ['LU'],
|
|
|
64 |
'lwówecki' => ['LW'],
|
|
|
65 |
'milicki' => ['MI'],
|
|
|
66 |
'oleśnicki' => ['OL'],
|
|
|
67 |
'oławski' => ['OA'],
|
|
|
68 |
'polkowicki' => ['PL'],
|
|
|
69 |
'strzeliński' => ['ST'],
|
|
|
70 |
'średzki' => ['SR'],
|
|
|
71 |
'świdnicki' => ['SW'],
|
|
|
72 |
'trzebnicki' => ['TR'],
|
|
|
73 |
'wałbrzyski' => ['BA'],
|
|
|
74 |
'wołowski' => ['WL'],
|
|
|
75 |
'wrocławski' => ['WR'],
|
|
|
76 |
'ząbkowicki' => ['ZA'],
|
|
|
77 |
'zgorzelecki' => ['ZG'],
|
|
|
78 |
'złotoryjski' => ['ZL'],
|
|
|
79 |
],
|
|
|
80 |
'C' => [
|
|
|
81 |
'Bydgoszcz' => ['B'],
|
|
|
82 |
'Grudziądz' => ['G'],
|
|
|
83 |
'Toruń' => ['T'],
|
|
|
84 |
'Włocławek' => ['W'],
|
|
|
85 |
'aleksandrowski' => ['AL'],
|
|
|
86 |
'brodnicki' => ['BR'],
|
|
|
87 |
'bydgoski' => ['BY'],
|
|
|
88 |
'chełmiński' => ['CH'],
|
|
|
89 |
'golubsko-dobrzyński' => ['GD'],
|
|
|
90 |
'grudziądzki' => ['GR'],
|
|
|
91 |
'inowrocławski' => ['IN'],
|
|
|
92 |
'lipnowski' => ['LI'],
|
|
|
93 |
'mogileński' => ['MG'],
|
|
|
94 |
'nakielski' => ['NA'],
|
|
|
95 |
'radziejowski' => ['RA'],
|
|
|
96 |
'rypiński' => ['RY'],
|
|
|
97 |
'sępoleński' => ['SE'],
|
|
|
98 |
'świecki' => ['SW'],
|
|
|
99 |
'toruński' => ['TR'],
|
|
|
100 |
'tucholski' => ['TU'],
|
|
|
101 |
'wąbrzeski' => ['WA'],
|
|
|
102 |
'włocławski' => ['WL'],
|
|
|
103 |
'żniński' => ['ZN'],
|
|
|
104 |
],
|
|
|
105 |
'L' => [
|
|
|
106 |
'Biała Podlaska' => ['B'],
|
|
|
107 |
'Chełm' => ['C'],
|
|
|
108 |
'Lublin' => ['U'],
|
|
|
109 |
'Zamość' => ['Z'],
|
|
|
110 |
'bialski' => ['BI'],
|
|
|
111 |
'biłgorajski' => ['BL'],
|
|
|
112 |
'chełmski' => ['CH'],
|
|
|
113 |
'hrubieszowski' => ['HR'],
|
|
|
114 |
'janowski' => ['JA'],
|
|
|
115 |
'krasnostawski' => ['KS'],
|
|
|
116 |
'kraśnicki' => ['KR'],
|
|
|
117 |
'lubartowski' => ['LB'],
|
|
|
118 |
'lubelski' => ['UB'],
|
|
|
119 |
'łęczyński' => ['LE'],
|
|
|
120 |
'łukowski' => ['LU'],
|
|
|
121 |
'opolski' => ['OP'],
|
|
|
122 |
'parczewski' => ['PA'],
|
|
|
123 |
'puławski' => ['PU'],
|
|
|
124 |
'radzyński' => ['RA'],
|
|
|
125 |
'rycki' => ['RY'],
|
|
|
126 |
'świdnicki' => ['SW'],
|
|
|
127 |
'tomaszowski' => ['TM'],
|
|
|
128 |
'włodawski' => ['WL'],
|
|
|
129 |
'zamojski' => ['ZA'],
|
|
|
130 |
],
|
|
|
131 |
'F' => [
|
|
|
132 |
'Gorzów Wielkopolski' => ['G'],
|
|
|
133 |
'Zielona Góra' => ['Z'],
|
|
|
134 |
'gorzowski' => ['GW'],
|
|
|
135 |
'krośnieński' => ['KR'],
|
|
|
136 |
'międzyrzecki' => ['MI'],
|
|
|
137 |
'nowosolski' => ['NW'],
|
|
|
138 |
'słubicki' => ['SL'],
|
|
|
139 |
'strzelecko-drezdenecki' => ['SD'],
|
|
|
140 |
'sulęciński' => ['SU'],
|
|
|
141 |
'świebodziński' => ['SW'],
|
|
|
142 |
'wschowski' => ['WS'],
|
|
|
143 |
'zielonogórski' => ['ZI'],
|
|
|
144 |
'żagański' => ['ZG'],
|
|
|
145 |
'żarski' => ['ZA'],
|
|
|
146 |
],
|
|
|
147 |
'E' => [
|
|
|
148 |
'Łódź' => ['L'],
|
|
|
149 |
'Piotrków Trybunalski' => ['P'],
|
|
|
150 |
'Skierniewice' => ['S'],
|
|
|
151 |
'brzeziński' => ['BR'],
|
|
|
152 |
'bełchatowski' => ['BE'],
|
|
|
153 |
'kutnowski' => ['KU'],
|
|
|
154 |
'łaski' => ['LA'],
|
|
|
155 |
'łęczycki' => ['LE'],
|
|
|
156 |
'łowicki' => ['LC'],
|
|
|
157 |
'łódzki wschodni' => ['LW'],
|
|
|
158 |
'opoczyński' => ['OP'],
|
|
|
159 |
'pabianicki' => ['PA'],
|
|
|
160 |
'pajęczański' => ['PJ'],
|
|
|
161 |
'piotrkowski' => ['PI'],
|
|
|
162 |
'poddębicki' => ['PD'],
|
|
|
163 |
'radomszczański' => ['RA'],
|
|
|
164 |
'rawski' => ['RW'],
|
|
|
165 |
'sieradzki' => ['SI'],
|
|
|
166 |
'skierniewicki' => ['SK'],
|
|
|
167 |
'tomaszowski' => ['TM'],
|
|
|
168 |
'wieluński' => ['WI'],
|
|
|
169 |
'wieruszowski' => ['WE'],
|
|
|
170 |
'zduńskowolski' => ['ZD'],
|
|
|
171 |
'zgierski' => ['ZG'],
|
|
|
172 |
],
|
|
|
173 |
'K' => [
|
|
|
174 |
'Kraków' => ['R'],
|
|
|
175 |
'Nowy Sącz' => ['N'],
|
|
|
176 |
'Tarnów' => ['T'],
|
|
|
177 |
'bocheński' => ['BA', 'BC'],
|
|
|
178 |
'brzeski' => ['BR'],
|
|
|
179 |
'chrzanowski' => ['CH'],
|
|
|
180 |
'dąbrowski' => ['DA'],
|
|
|
181 |
'gorlicki' => ['GR'],
|
|
|
182 |
'krakowski' => ['RA'],
|
|
|
183 |
'limanowski' => ['LI'],
|
|
|
184 |
'miechowski' => ['MI'],
|
|
|
185 |
'myślenicki' => ['MY'],
|
|
|
186 |
'nowosądecki' => ['NS'],
|
|
|
187 |
'nowotarski' => ['NT'],
|
|
|
188 |
'olkuski' => ['OL'],
|
|
|
189 |
'oświęcimski' => ['OS'],
|
|
|
190 |
'proszowicki' => ['PR'],
|
|
|
191 |
'suski' => ['SU'],
|
|
|
192 |
'tarnowski' => ['TA'],
|
|
|
193 |
'tatrzański' => ['TT'],
|
|
|
194 |
'wadowicki' => ['WA'],
|
|
|
195 |
'wielicki' => ['WI'],
|
|
|
196 |
],
|
|
|
197 |
'W' => [
|
|
|
198 |
'Ostrołęka' => ['O'],
|
|
|
199 |
'Płock' => ['P'],
|
|
|
200 |
'Radom' => ['R'],
|
|
|
201 |
'Siedlce' => ['S'],
|
|
|
202 |
'białobrzeski' => ['BR'],
|
|
|
203 |
'ciechanowski' => ['CI'],
|
|
|
204 |
'garwoliński' => ['G'],
|
|
|
205 |
'gostyniński' => ['GS'],
|
|
|
206 |
'grodziski' => ['GM'],
|
|
|
207 |
'grójecki' => ['GR'],
|
|
|
208 |
'kozienicki' => ['KZ'],
|
|
|
209 |
'legionowski' => ['L'],
|
|
|
210 |
'lipski' => ['LI'],
|
|
|
211 |
'łosicki' => ['LS'],
|
|
|
212 |
'makowski' => ['MA'],
|
|
|
213 |
'miński' => ['M'],
|
|
|
214 |
'mławski' => ['ML'],
|
|
|
215 |
'nowodworski' => ['ND'],
|
|
|
216 |
'ostrołęcki' => ['OS'],
|
|
|
217 |
'ostrowski' => ['OR'],
|
|
|
218 |
'otwocki' => ['OT'],
|
|
|
219 |
'piaseczyński' => ['PA', 'PI'],
|
|
|
220 |
'płocki' => ['PL'],
|
|
|
221 |
'płoński' => ['PN'],
|
|
|
222 |
'pruszkowski' => ['PP', 'PR', 'PS'],
|
|
|
223 |
'przasnyski' => ['PZ'],
|
|
|
224 |
'przysuski' => ['PY'],
|
|
|
225 |
'pułtuski' => ['PU'],
|
|
|
226 |
'radomski' => ['RA'],
|
|
|
227 |
'siedlecki' => ['SI'],
|
|
|
228 |
'sierpecki' => ['SE'],
|
|
|
229 |
'sochaczewski' => ['SC'],
|
|
|
230 |
'sokołowski' => ['SK'],
|
|
|
231 |
'szydłowiecki' => ['SZ'],
|
|
|
232 |
'warszawski' => ['A', 'B', 'D', 'E', 'F', 'H', 'I', 'J', 'K', 'N', 'T', 'U', 'W', 'X', 'Y'],
|
|
|
233 |
'warszawski zachodni' => ['Z'],
|
|
|
234 |
'węgrowski' => ['WE'],
|
|
|
235 |
'wołomiński' => ['WL', 'V'],
|
|
|
236 |
'wyszkowski' => ['WY'],
|
|
|
237 |
'zwoleński' => ['ZW'],
|
|
|
238 |
'żuromiński' => ['ZU'],
|
|
|
239 |
'żyrardowski' => ['ZY'],
|
|
|
240 |
],
|
|
|
241 |
'O' => [
|
|
|
242 |
'Opole' => ['P'],
|
|
|
243 |
'brzeski' => ['B'],
|
|
|
244 |
'głubczycki' => ['GL'],
|
|
|
245 |
'kędzierzyńsko-kozielski' => ['K'],
|
|
|
246 |
'kluczborski' => ['KL'],
|
|
|
247 |
'krapkowicki' => ['KR'],
|
|
|
248 |
'namysłowski' => ['NA'],
|
|
|
249 |
'nyski' => ['NY'],
|
|
|
250 |
'oleski' => ['OL'],
|
|
|
251 |
'opolski' => ['PO'],
|
|
|
252 |
'prudnicki' => ['PR'],
|
|
|
253 |
'strzelecki' => ['ST'],
|
|
|
254 |
],
|
|
|
255 |
'R' => [
|
|
|
256 |
'Krosno' => ['K'],
|
|
|
257 |
'Przemyśl' => ['P'],
|
|
|
258 |
'Rzeszów' => ['Z'],
|
|
|
259 |
'Tarnobrzeg' => ['T'],
|
|
|
260 |
'bieszczadzki' => ['BI'],
|
|
|
261 |
'brzozowski' => ['BR'],
|
|
|
262 |
'dębicki' => ['DE'],
|
|
|
263 |
'jarosławski' => ['JA'],
|
|
|
264 |
'jasielski' => ['JS'],
|
|
|
265 |
'kolbuszowski' => ['KL'],
|
|
|
266 |
'krośnieński' => ['KR'],
|
|
|
267 |
'leski' => ['LS'],
|
|
|
268 |
'leżajski' => ['LE'],
|
|
|
269 |
'lubaczowski' => ['LU'],
|
|
|
270 |
'łańcucki' => ['LA'],
|
|
|
271 |
'mielecki' => ['MI'],
|
|
|
272 |
'niżański' => ['NI'],
|
|
|
273 |
'przemyski' => ['PR'],
|
|
|
274 |
'przeworski' => ['PZ'],
|
|
|
275 |
'ropczycko-sędziszowski' => ['RS'],
|
|
|
276 |
'rzeszowski' => ['ZE'],
|
|
|
277 |
'sanocki' => ['SA'],
|
|
|
278 |
'stalowowolski' => ['ST'],
|
|
|
279 |
'strzyżowski' => ['SR'],
|
|
|
280 |
'tarnobrzeski' => ['TA'],
|
|
|
281 |
],
|
|
|
282 |
'B' => [
|
|
|
283 |
'Białystok' => ['I'],
|
|
|
284 |
'Łomża' => ['L'],
|
|
|
285 |
'Suwałki' => ['S'],
|
|
|
286 |
'augustowski' => ['AU'],
|
|
|
287 |
'białostocki' => ['IA'],
|
|
|
288 |
'bielski' => ['BI'],
|
|
|
289 |
'grajewski' => ['GR'],
|
|
|
290 |
'hajnowski' => ['HA'],
|
|
|
291 |
'kolneński' => ['KL'],
|
|
|
292 |
'łomżyński' => ['LM'],
|
|
|
293 |
'moniecki' => ['MN'],
|
|
|
294 |
'sejneński' => ['SE'],
|
|
|
295 |
'siemiatycki' => ['SI'],
|
|
|
296 |
'sokólski' => ['SK'],
|
|
|
297 |
'suwalski' => ['SU'],
|
|
|
298 |
'wysokomazowiecki' => ['WM'],
|
|
|
299 |
'zambrowski' => ['ZA'],
|
|
|
300 |
],
|
|
|
301 |
'G' => [
|
|
|
302 |
'Gdańsk' => ['D'],
|
|
|
303 |
'Gdynia' => ['A'],
|
|
|
304 |
'Słupsk' => ['S'],
|
|
|
305 |
'Sopot' => ['SP'],
|
|
|
306 |
'bytowski' => ['BY'],
|
|
|
307 |
'chojnicki' => ['CH'],
|
|
|
308 |
'człuchowski' => ['CZ'],
|
|
|
309 |
'gdański' => ['DA'],
|
|
|
310 |
'kartuski' => ['KY', 'KA'],
|
|
|
311 |
'kościerski' => ['KS'],
|
|
|
312 |
'kwidzyński' => ['KW'],
|
|
|
313 |
'lęborski' => ['LE'],
|
|
|
314 |
'malborski' => ['MB'],
|
|
|
315 |
'nowodworski' => ['ND'],
|
|
|
316 |
'pucki' => ['PU'],
|
|
|
317 |
'słupski' => ['SL'],
|
|
|
318 |
'starogardzki' => ['ST'],
|
|
|
319 |
'sztumski' => ['SZ'],
|
|
|
320 |
'tczewski' => ['TC'],
|
|
|
321 |
'wejherowski' => ['WE', 'WO'],
|
|
|
322 |
],
|
|
|
323 |
'S' => [
|
|
|
324 |
'Bielsko-Biała' => ['B'],
|
|
|
325 |
'Bytom' => ['Y'],
|
|
|
326 |
'Chorzów' => ['H'],
|
|
|
327 |
'Częstochowa' => ['C'],
|
|
|
328 |
'Dąbrowa Górnicza' => ['D'],
|
|
|
329 |
'Gliwice' => ['G'],
|
|
|
330 |
'Jastrzębie-Zdrój' => ['JZ'],
|
|
|
331 |
'Jaworzno' => ['J'],
|
|
|
332 |
'Katowice' => ['K'],
|
|
|
333 |
'Mysłowice' => ['M'],
|
|
|
334 |
'Piekary Śląskie' => ['PI'],
|
|
|
335 |
'Ruda Śląska,' => ['L', 'RS'],
|
|
|
336 |
'Rybnik' => ['R'],
|
|
|
337 |
'Siemianowice Śląskie' => ['I'],
|
|
|
338 |
'Sosnowiec' => ['O'],
|
|
|
339 |
'Świętochłowice' => ['W'],
|
|
|
340 |
'Tychy' => ['T'],
|
|
|
341 |
'Zabrze' => ['Z'],
|
|
|
342 |
'Żory' => ['ZO'],
|
|
|
343 |
'będziński' => ['BE'],
|
|
|
344 |
'bielski' => ['BI'],
|
|
|
345 |
'cieszyński' => ['CN', 'CI'],
|
|
|
346 |
'częstochowski' => ['CZ'],
|
|
|
347 |
'gliwicki' => ['GL'],
|
|
|
348 |
'kłobucki' => ['KL'],
|
|
|
349 |
'lubliniecki' => ['LU'],
|
|
|
350 |
'mikołowski' => ['MI'],
|
|
|
351 |
'myszkowski' => ['MY'],
|
|
|
352 |
'pszczyński' => ['PS'],
|
|
|
353 |
'raciborski' => ['RC'],
|
|
|
354 |
'rybnicki' => ['RB'],
|
|
|
355 |
'tarnogórski' => ['TA'],
|
|
|
356 |
'bieruńsko - lędziński' => ['BL'],
|
|
|
357 |
'wodzisławski' => ['WD', 'WZ'],
|
|
|
358 |
'zawierciański' => ['ZA'],
|
|
|
359 |
'żywiecki' => ['ZY'],
|
|
|
360 |
],
|
|
|
361 |
'T' => [
|
|
|
362 |
'Kielce' => ['K'],
|
|
|
363 |
'buski' => ['BU'],
|
|
|
364 |
'jędrzejowski' => ['JE'],
|
|
|
365 |
'kazimierski' => ['KA'],
|
|
|
366 |
'kielecki' => ['KI'],
|
|
|
367 |
'konecki' => ['KN'],
|
|
|
368 |
'opatowski' => ['OP'],
|
|
|
369 |
'ostrowiecki' => ['OS'],
|
|
|
370 |
'pińczowski' => ['PI'],
|
|
|
371 |
'sandomierski' => ['SA'],
|
|
|
372 |
'skarżyski' => ['SK'],
|
|
|
373 |
'starachowicki' => ['ST'],
|
|
|
374 |
'staszowski' => ['SZ'],
|
|
|
375 |
'włoszczowski' => ['LW'],
|
|
|
376 |
],
|
|
|
377 |
'N' => [
|
|
|
378 |
'Elbląg' => ['E'],
|
|
|
379 |
'Olsztyn' => ['O'],
|
|
|
380 |
'bartoszycki' => ['BA'],
|
|
|
381 |
'braniewski' => ['BR'],
|
|
|
382 |
'działdowski' => ['DZ'],
|
|
|
383 |
'elbląski' => ['EB'],
|
|
|
384 |
'ełcki' => ['EL'],
|
|
|
385 |
'giżycki' => ['GI'],
|
|
|
386 |
'iławski' => ['IL'],
|
|
|
387 |
'kętrzyński' => ['KE'],
|
|
|
388 |
'lidzbarski' => ['LI'],
|
|
|
389 |
'mrągowski' => ['MR'],
|
|
|
390 |
'nidzicki' => ['NI'],
|
|
|
391 |
'nowomiejski' => ['NM'],
|
|
|
392 |
'olecki' => ['OE'],
|
|
|
393 |
'gołdapski' => ['GO'],
|
|
|
394 |
'olsztyński' => ['OL'],
|
|
|
395 |
'ostródzki' => ['OS'],
|
|
|
396 |
'piski' => ['PI'],
|
|
|
397 |
'szczycieński' => ['SZ'],
|
|
|
398 |
'węgorzewski' => ['WE'],
|
|
|
399 |
],
|
|
|
400 |
'P' => [
|
|
|
401 |
'Kalisz' => ['A', 'K'],
|
|
|
402 |
'Konin' => ['KO', 'N'],
|
|
|
403 |
'Leszno' => ['L'],
|
|
|
404 |
'Poznań' => ['O', 'Y'],
|
|
|
405 |
'chodzieski' => ['CH'],
|
|
|
406 |
'czarnkowsko-trzcianecki' => ['CT'],
|
|
|
407 |
'gnieźnieński' => ['GN'],
|
|
|
408 |
'gostyński' => ['GS'],
|
|
|
409 |
'grodziski' => ['GO'],
|
|
|
410 |
'jarociński' => ['JA'],
|
|
|
411 |
'kaliski' => ['KA'],
|
|
|
412 |
'kępiński' => ['KE'],
|
|
|
413 |
'kolski' => ['KL'],
|
|
|
414 |
'koniński' => ['KN'],
|
|
|
415 |
'kościański' => ['KS'],
|
|
|
416 |
'krotoszyński' => ['KR'],
|
|
|
417 |
'leszczyński' => ['LE'],
|
|
|
418 |
'międzychodzki' => ['MI'],
|
|
|
419 |
'nowotomyski' => ['NT'],
|
|
|
420 |
'obornicki' => ['OB'],
|
|
|
421 |
'ostrowski' => ['OS'],
|
|
|
422 |
'ostrzeszowski' => ['OT'],
|
|
|
423 |
'pilski' => ['P'],
|
|
|
424 |
'pleszewski' => ['PL'],
|
|
|
425 |
'poznański' => ['OZ', 'Z'],
|
|
|
426 |
'rawicki' => ['RA'],
|
|
|
427 |
'słupecki' => ['SL'],
|
|
|
428 |
'szamotulski' => ['SZ'],
|
|
|
429 |
'średzki' => ['SR'],
|
|
|
430 |
'śremski' => ['SE'],
|
|
|
431 |
'turecki' => ['TU'],
|
|
|
432 |
'wągrowiecki' => ['WA'],
|
|
|
433 |
'wolsztyński' => ['WL'],
|
|
|
434 |
'wrzesiński' => ['WR'],
|
|
|
435 |
'złotowski' => ['ZL'],
|
|
|
436 |
],
|
|
|
437 |
'Z' => [
|
|
|
438 |
'Koszalin' => ['K'],
|
|
|
439 |
'Szczecin' => ['S', 'Z'],
|
|
|
440 |
'Świnoujście' => ['SW'],
|
|
|
441 |
'białogardzki' => ['BI'],
|
|
|
442 |
'choszczeński' => ['CH'],
|
|
|
443 |
'drawski' => ['DR'],
|
|
|
444 |
'goleniowski' => ['GL'],
|
|
|
445 |
'gryficki' => ['GY'],
|
|
|
446 |
'gryfiński' => ['GR'],
|
|
|
447 |
'kamieński' => ['KA'],
|
|
|
448 |
'kołobrzeski' => ['KL'],
|
|
|
449 |
'koszaliński' => ['KO'],
|
|
|
450 |
'łobeski' => ['LO'],
|
|
|
451 |
'myśliborski' => ['MY'],
|
|
|
452 |
'policki' => ['PL'],
|
|
|
453 |
'pyrzycki' => ['PY'],
|
|
|
454 |
'sławieński' => ['SL'],
|
|
|
455 |
'stargardzki' => ['ST'],
|
|
|
456 |
'szczecinecki' => ['SZ'],
|
|
|
457 |
'świdwiński' => ['SD'],
|
|
|
458 |
'wałecki' => ['WA'],
|
|
|
459 |
],
|
|
|
460 |
'U' => [
|
|
|
461 |
'Siły Zbrojne Rzeczypospolitej Polskiej' => ['A', 'B', 'C', 'D', 'E', 'G', 'I', 'J', 'K', 'L'],
|
|
|
462 |
],
|
|
|
463 |
'H' => [
|
|
|
464 |
'Centralne Biuro Antykorupcyjne' => ['A'],
|
|
|
465 |
'Służba Ochrony Państwa' => ['BA', 'BB', 'BE', 'BF', 'BG'],
|
|
|
466 |
'Służba Celno-Skarbowa' => ['CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CR'],
|
|
|
467 |
'Agencja Bezpieczeństwa Wewnętrznego' => ['K'],
|
|
|
468 |
'Agencja Wywiadu' => ['K'],
|
|
|
469 |
'Służba Kontrwywiadu Wojskowego' => ['M'],
|
|
|
470 |
'Służba Wywiadu Wojskowego' => ['M'],
|
|
|
471 |
'Policja' => ['PA', 'PB', 'PC', 'PD', 'PE', 'PF', 'PG', 'PH', 'PJ', 'PK', 'PL', 'PL', 'PL', 'PL', 'PL', 'PM', 'PN', 'PP', 'PS', 'PT', 'PU', 'PW', 'PZ'],
|
|
|
472 |
'Straż Graniczna' => ['WA', 'WK'],
|
|
|
473 |
],
|
|
|
474 |
];
|
|
|
475 |
|
|
|
476 |
/**
|
|
|
477 |
* @var array list of regex expressions matching Polish license plate suffixess when county code is 1 character long.
|
|
|
478 |
*/
|
|
|
479 |
protected static $plateSuffixesGroup1 = [
|
|
|
480 |
'\d{5}',
|
|
|
481 |
'\d{4}[A-PR-Z]',
|
|
|
482 |
'\d{3}[A-PR-Z]{2}',
|
|
|
483 |
'[1-9][A-PR-Z]\d{3}',
|
|
|
484 |
'[1-9][A-PR-Z]{2}\d{2}',
|
|
|
485 |
];
|
|
|
486 |
|
|
|
487 |
/**
|
|
|
488 |
* @var array list of regex expressions matching Polish license plate suffixess when county code is 2 characters long.
|
|
|
489 |
*/
|
|
|
490 |
protected static $plateSuffixesGroup2 = [
|
|
|
491 |
'[A-PR-Z]\d{3}',
|
|
|
492 |
'\d{2}[A-PR-Z]{2}',
|
|
|
493 |
'[1-9][A-PR-Z]\d{2}',
|
|
|
494 |
'\d{2}[A-PR-Z][1-9]',
|
|
|
495 |
'[1-9][A-PR-Z]{2}[1-9]',
|
|
|
496 |
'[A-PR-Z]{2}\d{2}',
|
|
|
497 |
'\d{5}',
|
|
|
498 |
'\d{4}[A-PR-Z]',
|
|
|
499 |
'\d{3}[A-PR-Z]{2}',
|
|
|
500 |
'[A-PR-Z]\d{2}[A-PR-Z]',
|
|
|
501 |
'[A-PR-Z][1-9][A-PR-Z]{2}',
|
|
|
502 |
];
|
|
|
503 |
|
|
|
504 |
/**
|
|
|
505 |
* Generates random license plate.
|
|
|
506 |
*
|
|
|
507 |
* @param bool $special whether special license plates should be included
|
|
|
508 |
* @param array|null $voivodeships list of voivodeships license plate should be generated from
|
|
|
509 |
* @param array|null $counties list of counties license plate should be generated from
|
|
|
510 |
*/
|
|
|
511 |
public static function licensePlate(
|
|
|
512 |
bool $special = false,
|
|
|
513 |
?array $voivodeships = null,
|
|
|
514 |
?array $counties = null
|
|
|
515 |
): string {
|
|
|
516 |
$voivodeshipsAvailable = static::$voivodeships + ($special ? static::$specials : []);
|
|
|
517 |
$voivodeshipCode = static::selectRandomArea($voivodeshipsAvailable, $voivodeships);
|
|
|
518 |
|
|
|
519 |
$countiesAvailable = static::$counties[$voivodeshipCode];
|
|
|
520 |
$countySelected = self::selectRandomArea($countiesAvailable, $counties);
|
|
|
521 |
|
|
|
522 |
$countyCode = static::randomElement($countySelected);
|
|
|
523 |
|
|
|
524 |
$suffix = static::regexify(static::randomElement(strlen($countyCode) === 1 ? static::$plateSuffixesGroup1 : static::$plateSuffixesGroup2));
|
|
|
525 |
|
|
|
526 |
return "{$voivodeshipCode}{$countyCode} {$suffix}";
|
|
|
527 |
}
|
|
|
528 |
|
|
|
529 |
/**
|
|
|
530 |
* Selects random area from the list of available and requested.
|
|
|
531 |
*/
|
|
|
532 |
protected static function selectRandomArea(array $available, ?array $requested)
|
|
|
533 |
{
|
|
|
534 |
$requested = array_intersect(array_keys($available), $requested ?? []);
|
|
|
535 |
|
|
|
536 |
if (empty($requested)) {
|
|
|
537 |
$requested = array_keys($available);
|
|
|
538 |
}
|
|
|
539 |
|
|
|
540 |
return $available[static::randomElement($requested)];
|
|
|
541 |
}
|
|
|
542 |
}
|