Subversion Repositories oidplus

Rev

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