Rev 771 | Rev 1116 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 771 | Rev 1050 | ||
---|---|---|---|
1 | <?php |
1 | <?php |
2 | 2 | ||
3 | /** |
3 | /** |
4 | * WEID<=>OID Converter |
4 | * WEID<=>OID Converter |
5 | * (c) Webfan.de, ViaThinkSoft |
5 | * (c) Webfan.de, ViaThinkSoft |
6 | * Revision 2022-03-06 |
6 | * Revision 2022-03-06 |
7 | **/ |
7 | **/ |
8 | 8 | ||
9 | // What is a WEID? |
9 | // What is a WEID? |
10 | // A WEID (WEhowski IDentifier) is an alternative representation of an |
10 | // A WEID (WEhowski IDentifier) is an alternative representation of an |
11 | // OID (Object IDentifier) defined by Till Wehowski. |
11 | // OID (Object IDentifier) defined by Till Wehowski. |
12 | // In OIDs, arcs are in decimal base 10. In WEIDs, the arcs are in base 36. |
12 | // In OIDs, arcs are in decimal base 10. In WEIDs, the arcs are in base 36. |
13 | // Also, each WEID has a check digit at the end (called WeLohn Check Digit). |
13 | // Also, each WEID has a check digit at the end (called WeLohn Check Digit). |
14 | // |
14 | // |
15 | // Changes in the December 2021 definition by Daniel Marschall: |
15 | // Changes in the December 2021 definition by Daniel Marschall: |
16 | // - There are several classes of WEIDs which have different OID bases: |
16 | // - There are several classes of WEIDs which have different OID bases: |
17 | // "Class C" WEID: weid:EXAMPLE-3 (base .1.3.6.1.4.1.37553.8.) |
17 | // "Class C" WEID: weid:EXAMPLE-3 (base .1.3.6.1.4.1.37553.8.) |
18 | // oid:1.3.6.1.4.1.37553.8.32488192274 |
18 | // oid:1.3.6.1.4.1.37553.8.32488192274 |
19 | // "Class B" WEID: weid:pen:SX0-7PR-6 (base .1.3.6.1.4.1.) |
19 | // "Class B" WEID: weid:pen:SX0-7PR-6 (base .1.3.6.1.4.1.) |
20 | // oid:1.3.6.1.4.1.37476.9999 |
20 | // oid:1.3.6.1.4.1.37476.9999 |
21 | // "Class A" WEID: weid:root:2-RR-2 (base .) |
21 | // "Class A" WEID: weid:root:2-RR-2 (base .) |
22 | // oid:2.999 |
22 | // oid:2.999 |
23 | // - The namespace (weid:, weid:pen:, weid:root:) is now case insensitive. |
23 | // - The namespace (weid:, weid:pen:, weid:root:) is now case insensitive. |
24 | // - Padding with '0' characters is valid (e.g. weid:000EXAMPLE-3) |
24 | // - Padding with '0' characters is valid (e.g. weid:000EXAMPLE-3) |
25 | // The paddings do not count into the WeLuhn check-digit. |
25 | // The paddings do not count into the WeLuhn check-digit. |
26 | 26 | ||
- | 27 | namespace Frdl\Weid; // TODO: Namespace mit Till abklären |
|
- | 28 | ||
27 | class WeidOidConverter { |
29 | class WeidOidConverter { |
28 | 30 | ||
29 | protected static function weLuhnGetCheckDigit($str) { |
31 | protected static function weLuhnGetCheckDigit($str) { |
30 | // Padding zeros don't count to the check digit (December 2021) |
32 | // Padding zeros don't count to the check digit (December 2021) |
31 | $ary = explode('-', $str); |
33 | $ary = explode('-', $str); |
32 | foreach ($ary as &$a) { |
34 | foreach ($ary as &$a) { |
33 | $a = ltrim($a, '0'); |
35 | $a = ltrim($a, '0'); |
34 | if ($a === '') $a = '0'; |
36 | if ($a === '') $a = '0'; |
35 | } |
37 | } |
36 | $str = implode('-', $ary); |
38 | $str = implode('-', $ary); |
37 | 39 | ||
38 | // remove separators of the WEID string |
40 | // remove separators of the WEID string |
39 | $wrkstr = str_replace('-', '', $str); |
41 | $wrkstr = str_replace('-', '', $str); |
40 | 42 | ||
41 | // Replace 'a' with '10', 'b' with '11', etc. |
43 | // Replace 'a' with '10', 'b' with '11', etc. |
42 | for ($i=0; $i<26; $i++) { |
44 | for ($i=0; $i<26; $i++) { |
43 | $wrkstr = str_ireplace(chr(ord('a')+$i), (string)($i+10), $wrkstr); |
45 | $wrkstr = str_ireplace(chr(ord('a')+$i), (string)($i+10), $wrkstr); |
44 | } |
46 | } |
45 | 47 | ||
46 | // At the end, $wrkstr should only contain digits! Verify it! |
48 | // At the end, $wrkstr should only contain digits! Verify it! |
47 | for ($i=0; $i<strlen($wrkstr); $i++) { |
49 | for ($i=0; $i<strlen($wrkstr); $i++) { |
48 | if (($wrkstr[$i]<'0') || ($wrkstr[$i]>'9')) return false; |
50 | if (($wrkstr[$i]<'0') || ($wrkstr[$i]>'9')) return false; |
49 | } |
51 | } |
50 | 52 | ||
51 | // Now do the standard Luhn algorithm |
53 | // Now do the standard Luhn algorithm |
52 | $nbdigits = strlen($wrkstr); |
54 | $nbdigits = strlen($wrkstr); |
53 | $parity = $nbdigits & 1; // mod 2 |
55 | $parity = $nbdigits & 1; // mod 2 |
54 | $sum = 0; |
56 | $sum = 0; |
55 | for ($n=$nbdigits-1; $n>=0; $n--) { |
57 | for ($n=$nbdigits-1; $n>=0; $n--) { |
56 | $digit = (int)$wrkstr[$n]; |
58 | $digit = (int)$wrkstr[$n]; |
57 | if (($n & 1) != $parity) $digit *= 2; |
59 | if (($n & 1) != $parity) $digit *= 2; |
58 | if ($digit > 9) $digit -= 9; |
60 | if ($digit > 9) $digit -= 9; |
59 | $sum += $digit; |
61 | $sum += $digit; |
60 | } |
62 | } |
61 | return ($sum%10) == 0 ? 0 : 10-($sum%10); |
63 | return ($sum%10) == 0 ? 0 : 10-($sum%10); |
62 | } |
64 | } |
63 | 65 | ||
64 | private static function oidSanitize($oid) { |
66 | private static function oidSanitize($oid) { |
65 | $oid = trim($oid); |
67 | $oid = trim($oid); |
66 | 68 | ||
67 | if (substr($oid,0,1) == '.') $oid = substr($oid,1); // remove leading dot |
69 | if (substr($oid,0,1) == '.') $oid = substr($oid,1); // remove leading dot |
68 | 70 | ||
69 | if ($oid != '') { |
71 | if ($oid != '') { |
70 | $elements = explode('.', $oid); |
72 | $elements = explode('.', $oid); |
71 | foreach ($elements as &$elem) { |
73 | foreach ($elements as &$elem) { |
72 | if (trim($elem) == '') return false; |
74 | if (trim($elem) == '') return false; |
73 | 75 | ||
74 | if (!preg_match('/^\d+$/', $elem, $m)) return false; |
76 | if (!preg_match('/^\d+$/', $elem, $m)) return false; |
75 | 77 | ||
76 | if (preg_match('/^0+$/', $elem, $m)) { |
78 | if (preg_match('/^0+$/', $elem, $m)) { |
77 | $elem = '0'; |
79 | $elem = '0'; |
78 | } else { |
80 | } else { |
79 | $elem = preg_replace('/^0+/', '', $elem); |
81 | $elem = preg_replace('/^0+/', '', $elem); |
80 | } |
82 | } |
81 | }; |
83 | }; |
82 | $oid = implode('.', $elements); |
84 | $oid = implode('.', $elements); |
83 | 85 | ||
84 | if ((count($elements) > 0) && ($elements[0] != '0') && ($elements[0] != '1') && ($elements[0] != '2')) return false; |
86 | if ((count($elements) > 0) && ($elements[0] != '0') && ($elements[0] != '1') && ($elements[0] != '2')) return false; |
85 | if ((count($elements) > 1) && (($elements[0] == '0') || ($elements[0] == '1')) && ((strlen($elements[1]) > 2) || ($elements[1] > 39))) return false; |
87 | if ((count($elements) > 1) && (($elements[0] == '0') || ($elements[0] == '1')) && ((strlen($elements[1]) > 2) || ($elements[1] > 39))) return false; |
86 | } |
88 | } |
87 | 89 | ||
88 | return $oid; |
90 | return $oid; |
89 | } |
91 | } |
90 | 92 | ||
91 | // Translates a weid to an oid |
93 | // Translates a weid to an oid |
92 | // "weid:EXAMPLE-3" becomes "1.3.6.1.4.1.37553.8.32488192274" |
94 | // "weid:EXAMPLE-3" becomes "1.3.6.1.4.1.37553.8.32488192274" |
93 | // If it failed (e.g. wrong namespace, wrong checksum, etc.) then false is returned. |
95 | // If it failed (e.g. wrong namespace, wrong checksum, etc.) then false is returned. |
94 | // If the weid ends with '?', then it will be replaced with the checksum, |
96 | // If the weid ends with '?', then it will be replaced with the checksum, |
95 | // e.g. weid:EXAMPLE-? becomes weid:EXAMPLE-3 |
97 | // e.g. weid:EXAMPLE-? becomes weid:EXAMPLE-3 |
96 | public static function weid2oid(&$weid) { |
98 | public static function weid2oid(&$weid) { |
97 | $weid = trim($weid); |
99 | $weid = trim($weid); |
98 | 100 | ||
99 | $p = strrpos($weid,':'); |
101 | $p = strrpos($weid,':'); |
100 | $namespace = substr($weid, 0, $p+1); |
102 | $namespace = substr($weid, 0, $p+1); |
101 | $rest = substr($weid, $p+1); |
103 | $rest = substr($weid, $p+1); |
102 | 104 | ||
103 | $namespace = strtolower($namespace); // namespace is case insensitive |
105 | $namespace = strtolower($namespace); // namespace is case insensitive |
104 | if ($namespace == 'weid:') { |
106 | if ($namespace == 'weid:') { |
105 | // Class C |
107 | // Class C |
106 | $base = '1-3-6-1-4-1-SZ5-8'; |
108 | $base = '1-3-6-1-4-1-SZ5-8'; |
107 | } else if ($namespace == 'weid:pen:') { |
109 | } else if ($namespace == 'weid:pen:') { |
108 | // Class B |
110 | // Class B |
109 | $base = '1-3-6-1-4-1'; |
111 | $base = '1-3-6-1-4-1'; |
110 | } else if ($namespace == 'weid:root:') { |
112 | } else if ($namespace == 'weid:root:') { |
111 | // Class A |
113 | // Class A |
112 | $base = ''; |
114 | $base = ''; |
113 | } else { |
115 | } else { |
114 | // Wrong namespace |
116 | // Wrong namespace |
115 | return false; |
117 | return false; |
116 | } |
118 | } |
117 | 119 | ||
118 | $weid = $rest; |
120 | $weid = $rest; |
119 | 121 | ||
120 | $elements = array_merge(($base != '') ? explode('-', $base) : array(), explode('-', $weid)); |
122 | $elements = array_merge(($base != '') ? explode('-', $base) : array(), explode('-', $weid)); |
121 | 123 | ||
122 | foreach ($elements as $elem) { |
124 | foreach ($elements as $elem) { |
123 | if ($elem == '') return false; |
125 | if ($elem == '') return false; |
124 | } |
126 | } |
125 | 127 | ||
126 | $actual_checksum = array_pop($elements); |
128 | $actual_checksum = array_pop($elements); |
127 | $expected_checksum = self::weLuhnGetCheckDigit(implode('-',$elements)); |
129 | $expected_checksum = self::weLuhnGetCheckDigit(implode('-',$elements)); |
128 | if ($actual_checksum != '?') { |
130 | if ($actual_checksum != '?') { |
129 | if ($actual_checksum != $expected_checksum) { |
131 | if ($actual_checksum != $expected_checksum) { |
130 | return false; // wrong checksum |
132 | return false; // wrong checksum |
131 | } |
133 | } |
132 | } else { |
134 | } else { |
133 | // If checksum is '?', it will be replaced by the actual checksum, |
135 | // If checksum is '?', it will be replaced by the actual checksum, |
134 | // e.g. weid:EXAMPLE-? becomes weid:EXAMPLE-3 |
136 | // e.g. weid:EXAMPLE-? becomes weid:EXAMPLE-3 |
135 | $weid = str_replace('?', $expected_checksum, $weid); |
137 | $weid = str_replace('?', $expected_checksum, $weid); |
136 | } |
138 | } |
137 | foreach ($elements as &$arc) { |
139 | foreach ($elements as &$arc) { |
138 | //$arc = strtoupper(base_convert($arc, 36, 10)); |
140 | //$arc = strtoupper(base_convert($arc, 36, 10)); |
139 | $arc = strtoupper(self::base_convert_bigint($arc, 36, 10)); |
141 | $arc = strtoupper(self::base_convert_bigint($arc, 36, 10)); |
140 | } |
142 | } |
141 | $oid = implode('.', $elements); |
143 | $oid = implode('.', $elements); |
142 | 144 | ||
143 | $weid = strtolower($namespace) . strtoupper($weid); // add namespace again |
145 | $weid = strtolower($namespace) . strtoupper($weid); // add namespace again |
144 | 146 | ||
145 | $oid = self::oidSanitize($oid); |
147 | $oid = self::oidSanitize($oid); |
146 | if ($oid === false) return false; |
148 | if ($oid === false) return false; |
147 | 149 | ||
148 | return $oid; |
150 | return $oid; |
149 | } |
151 | } |
150 | 152 | ||
151 | // Converts an OID to WEID |
153 | // Converts an OID to WEID |
152 | // "1.3.6.1.4.1.37553.8.32488192274" becomes "weid:EXAMPLE-3" |
154 | // "1.3.6.1.4.1.37553.8.32488192274" becomes "weid:EXAMPLE-3" |
153 | public static function oid2weid($oid) { |
155 | public static function oid2weid($oid) { |
154 | $oid = self::oidSanitize($oid); |
156 | $oid = self::oidSanitize($oid); |
155 | if ($oid === false) return false; |
157 | if ($oid === false) return false; |
156 | 158 | ||
157 | if ($oid !== '') { |
159 | if ($oid !== '') { |
158 | $elements = explode('.', $oid); |
160 | $elements = explode('.', $oid); |
159 | foreach ($elements as &$arc) { |
161 | foreach ($elements as &$arc) { |
160 | //$arc = strtoupper(base_convert($arc, 10, 36)); |
162 | //$arc = strtoupper(base_convert($arc, 10, 36)); |
161 | $arc = strtoupper(self::base_convert_bigint($arc, 10, 36)); |
163 | $arc = strtoupper(self::base_convert_bigint($arc, 10, 36)); |
162 | } |
164 | } |
163 | $weidstr = implode('-', $elements); |
165 | $weidstr = implode('-', $elements); |
164 | } else { |
166 | } else { |
165 | $weidstr = ''; |
167 | $weidstr = ''; |
166 | } |
168 | } |
167 | 169 | ||
168 | $is_class_c = (strpos($weidstr, '1-3-6-1-4-1-SZ5-8-') === 0) || |
170 | $is_class_c = (strpos($weidstr, '1-3-6-1-4-1-SZ5-8-') === 0) || |
169 | ($weidstr === '1-3-6-1-4-1-SZ5-8'); |
171 | ($weidstr === '1-3-6-1-4-1-SZ5-8'); |
170 | $is_class_b = ((strpos($weidstr, '1-3-6-1-4-1-') === 0) || |
172 | $is_class_b = ((strpos($weidstr, '1-3-6-1-4-1-') === 0) || |
171 | ($weidstr === '1-3-6-1-4-1')) |
173 | ($weidstr === '1-3-6-1-4-1')) |
172 | && !$is_class_c; |
174 | && !$is_class_c; |
173 | $is_class_a = !$is_class_b && !$is_class_c; |
175 | $is_class_a = !$is_class_b && !$is_class_c; |
174 | 176 | ||
175 | $checksum = self::weLuhnGetCheckDigit($weidstr); |
177 | $checksum = self::weLuhnGetCheckDigit($weidstr); |
176 | 178 | ||
177 | if ($is_class_c) { |
179 | if ($is_class_c) { |
178 | $weidstr = substr($weidstr, strlen('1-3-6-1-4-1-SZ5-8-')); |
180 | $weidstr = substr($weidstr, strlen('1-3-6-1-4-1-SZ5-8-')); |
179 | $namespace = 'weid:'; |
181 | $namespace = 'weid:'; |
180 | } else if ($is_class_b) { |
182 | } else if ($is_class_b) { |
181 | $weidstr = substr($weidstr, strlen('1-3-6-1-4-1-')); |
183 | $weidstr = substr($weidstr, strlen('1-3-6-1-4-1-')); |
182 | $namespace = 'weid:pen:'; |
184 | $namespace = 'weid:pen:'; |
183 | } else if ($is_class_a) { |
185 | } else if ($is_class_a) { |
184 | // $weidstr stays |
186 | // $weidstr stays |
185 | $namespace = 'weid:root:'; |
187 | $namespace = 'weid:root:'; |
186 | } else { |
188 | } else { |
187 | // should not happen |
189 | // should not happen |
188 | return false; |
190 | return false; |
189 | } |
191 | } |
190 | 192 | ||
191 | $weid = $namespace . ($weidstr == '' ? $checksum : $weidstr . '-' . $checksum); |
193 | $weid = $namespace . ($weidstr == '' ? $checksum : $weidstr . '-' . $checksum); |
192 | 194 | ||
193 | return $weid; |
195 | return $weid; |
194 | } |
196 | } |
195 | 197 | ||
196 | protected static function base_convert_bigint($numstring, $frombase, $tobase) { |
198 | protected static function base_convert_bigint($numstring, $frombase, $tobase) { |
197 | $frombase_str = ''; |
199 | $frombase_str = ''; |
198 | for ($i=0; $i<$frombase; $i++) { |
200 | for ($i=0; $i<$frombase; $i++) { |
199 | $frombase_str .= strtoupper(base_convert((string)$i, 10, 36)); |
201 | $frombase_str .= strtoupper(base_convert((string)$i, 10, 36)); |
200 | } |
202 | } |
201 | 203 | ||
202 | $tobase_str = ''; |
204 | $tobase_str = ''; |
203 | for ($i=0; $i<$tobase; $i++) { |
205 | for ($i=0; $i<$tobase; $i++) { |
204 | $tobase_str .= strtoupper(base_convert((string)$i, 10, 36)); |
206 | $tobase_str .= strtoupper(base_convert((string)$i, 10, 36)); |
205 | } |
207 | } |
206 | 208 | ||
207 | $length = strlen($numstring); |
209 | $length = strlen($numstring); |
208 | $result = ''; |
210 | $result = ''; |
209 | $number = array(); |
211 | $number = array(); |
210 | for ($i = 0; $i < $length; $i++) { |
212 | for ($i = 0; $i < $length; $i++) { |
211 | $number[$i] = stripos($frombase_str, $numstring[$i]); |
213 | $number[$i] = stripos($frombase_str, $numstring[$i]); |
212 | } |
214 | } |
213 | do { // Loop until whole number is converted |
215 | do { // Loop until whole number is converted |
214 | $divide = 0; |
216 | $divide = 0; |
215 | $newlen = 0; |
217 | $newlen = 0; |
216 | for ($i = 0; $i < $length; $i++) { // Perform division manually (which is why this works with big numbers) |
218 | for ($i = 0; $i < $length; $i++) { // Perform division manually (which is why this works with big numbers) |
217 | $divide = $divide * $frombase + $number[$i]; |
219 | $divide = $divide * $frombase + $number[$i]; |
218 | if ($divide >= $tobase) { |
220 | if ($divide >= $tobase) { |
219 | $number[$newlen++] = (int)($divide / $tobase); |
221 | $number[$newlen++] = (int)($divide / $tobase); |
220 | $divide = $divide % $tobase; |
222 | $divide = $divide % $tobase; |
221 | } else if ($newlen > 0) { |
223 | } else if ($newlen > 0) { |
222 | $number[$newlen++] = 0; |
224 | $number[$newlen++] = 0; |
223 | } |
225 | } |
224 | } |
226 | } |
225 | $length = $newlen; |
227 | $length = $newlen; |
226 | $result = $tobase_str[$divide] . $result; // Divide is basically $numstring % $tobase (i.e. the new character) |
228 | $result = $tobase_str[$divide] . $result; // Divide is basically $numstring % $tobase (i.e. the new character) |
227 | } |
229 | } |
228 | while ($newlen != 0); |
230 | while ($newlen != 0); |
229 | 231 | ||
230 | return $result; |
232 | return $result; |
231 | } |
233 | } |
232 | } |
234 | } |
233 | 235 | ||
234 | 236 | ||
235 | # --- Usage Example --- |
237 | # --- Usage Example --- |
236 | 238 | ||
237 | /* |
239 | /* |
238 | echo "Class C tests:\n\n"; |
240 | echo "Class C tests:\n\n"; |
239 | 241 | ||
240 | var_dump($oid = '1.3.6.1.4.1.37553.8')."\n"; |
242 | var_dump($oid = '1.3.6.1.4.1.37553.8')."\n"; |
241 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
243 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
242 | $weid = 'weid:?'; |
244 | $weid = 'weid:?'; |
243 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
245 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
244 | var_dump($weid)."\n"; |
246 | var_dump($weid)."\n"; |
245 | echo "\n"; |
247 | echo "\n"; |
246 | 248 | ||
247 | var_dump($oid = '1.3.6.1.4.1.37553.8.32488192274')."\n"; |
249 | var_dump($oid = '1.3.6.1.4.1.37553.8.32488192274')."\n"; |
248 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
250 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
249 | $weid = 'weid:EXAMPLE-?'; |
251 | $weid = 'weid:EXAMPLE-?'; |
250 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
252 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
251 | var_dump($weid)."\n"; |
253 | var_dump($weid)."\n"; |
252 | $weid = 'weid:00000example-?'; |
254 | $weid = 'weid:00000example-?'; |
253 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
255 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
254 | var_dump($weid)."\n"; |
256 | var_dump($weid)."\n"; |
255 | echo "\n"; |
257 | echo "\n"; |
256 | 258 | ||
257 | echo "Class B tests:\n\n"; |
259 | echo "Class B tests:\n\n"; |
258 | 260 | ||
259 | var_dump($oid = '1.3.6.1.4.1')."\n"; |
261 | var_dump($oid = '1.3.6.1.4.1')."\n"; |
260 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
262 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
261 | $weid = 'weid:pen:?'; |
263 | $weid = 'weid:pen:?'; |
262 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
264 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
263 | var_dump($weid)."\n"; |
265 | var_dump($weid)."\n"; |
264 | echo "\n"; |
266 | echo "\n"; |
265 | 267 | ||
266 | var_dump($oid = '1.3.6.1.4.1.37553.7.99.99.99')."\n"; |
268 | var_dump($oid = '1.3.6.1.4.1.37553.7.99.99.99')."\n"; |
267 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
269 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
268 | $weid = 'weid:pen:SZ5-7-2R-2R-2R-?'; |
270 | $weid = 'weid:pen:SZ5-7-2R-2R-2R-?'; |
269 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
271 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
270 | var_dump($weid)."\n"; |
272 | var_dump($weid)."\n"; |
271 | $weid = 'weid:pen:000SZ5-7-02R-00002R-002r-?'; |
273 | $weid = 'weid:pen:000SZ5-7-02R-00002R-002r-?'; |
272 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
274 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
273 | var_dump($weid)."\n"; |
275 | var_dump($weid)."\n"; |
274 | echo "\n"; |
276 | echo "\n"; |
275 | 277 | ||
276 | var_dump($oid = '1.3.6.1.4.1.37476.9999')."\n"; |
278 | var_dump($oid = '1.3.6.1.4.1.37476.9999')."\n"; |
277 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
279 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
278 | $weid = 'weid:pen:SX0-7PR-?'; |
280 | $weid = 'weid:pen:SX0-7PR-?'; |
279 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
281 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
280 | var_dump($weid)."\n"; |
282 | var_dump($weid)."\n"; |
281 | echo "\n"; |
283 | echo "\n"; |
282 | 284 | ||
283 | echo "Class A tests:\n\n"; |
285 | echo "Class A tests:\n\n"; |
284 | 286 | ||
285 | var_dump($oid = '')."\n"; |
287 | var_dump($oid = '')."\n"; |
286 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
288 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
287 | $weid = 'weid:root:?'; |
289 | $weid = 'weid:root:?'; |
288 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
290 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
289 | var_dump($weid)."\n"; |
291 | var_dump($weid)."\n"; |
290 | echo "\n"; |
292 | echo "\n"; |
291 | 293 | ||
292 | var_dump($oid = '.2.999')."\n"; |
294 | var_dump($oid = '.2.999')."\n"; |
293 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
295 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
294 | $weid = 'weid:root:2-RR-?'; |
296 | $weid = 'weid:root:2-RR-?'; |
295 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
297 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
296 | var_dump($weid)."\n"; |
298 | var_dump($weid)."\n"; |
297 | echo "\n"; |
299 | echo "\n"; |
298 | 300 | ||
299 | var_dump($oid = '2.999')."\n"; |
301 | var_dump($oid = '2.999')."\n"; |
300 | var_dump(WeidOidConverter::oid2weid($oid))."\n"; |
302 | var_dump(\Frdl\Weid\WeidOidConverter::oid2weid($oid))."\n"; |
301 | $weid = 'weid:root:2-RR-?'; |
303 | $weid = 'weid:root:2-RR-?'; |
302 | var_dump(WeidOidConverter::weid2oid($weid))."\n"; |
304 | var_dump(\Frdl\Weid\WeidOidConverter::weid2oid($weid))."\n"; |
303 | var_dump($weid)."\n"; |
305 | var_dump($weid)."\n"; |
304 | echo "\n"; |
306 | echo "\n"; |
305 | */ |
307 | */ |
306 | 308 |