Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
226 | daniel-mar | 1 | <?php |
2 | |||
3 | $roots = array(); |
||
4 | #$roots[] = '.2.25.123'; |
||
5 | #$roots[] = '.2.25.456'; |
||
6 | $roots[] = '.1.3.6.1.4'; |
||
7 | $roots[] = '.1.3.6.1.4.1.1234'; |
||
8 | $roots[] = '.1.3.6.1.4.1.5678.2'; |
||
9 | |||
10 | $hiarc = -1; |
||
11 | |||
12 | foreach ($roots as $r) { |
||
13 | $c = explode('.', $r); |
||
14 | $z = count($c); |
||
15 | if ($z > $hiarc) $hiarc = $z; |
||
16 | } |
||
17 | |||
18 | echo "Hiarc: $hiarc\n"; |
||
19 | |||
20 | $cr = ''; |
||
21 | for ($i=1; $i<$hiarc; $i++) { |
||
22 | $eq = null; |
||
23 | $diff = false; |
||
24 | echo "--- $i ---\n"; |
||
25 | foreach ($roots as $r) { |
||
26 | $c = explode('.', $r); |
||
27 | $t = $c[$i]; |
||
28 | if (is_null($eq)) { |
||
29 | $eq = $t; |
||
30 | } else { |
||
31 | if ($eq != $t) { |
||
32 | echo "Chk: $eq != $t\n"; |
||
33 | |||
34 | $diff = true; |
||
35 | break; |
||
36 | } |
||
37 | } |
||
38 | } |
||
39 | if ($diff) { |
||
40 | $c = explode('.', $roots[0]); |
||
41 | $o = array(); |
||
42 | for ($j=$i-2; $j>=0; $j--) { |
||
43 | $o[] = $c[$j]; |
||
44 | } |
||
45 | $o = array_reverse($o); |
||
46 | $cr = implode('.', $o); |
||
47 | # if ($cr == '') $cr = '.'; |
||
48 | echo "Common root: ".$cr."\n";; |
||
49 | break; |
||
50 | } |
||
51 | } |
||
52 | |||
53 | $zzz = array(); |
||
54 | $zzz[$cr] = true; |
||
55 | foreach ($roots as $r) { |
||
56 | echo "Proc $r ($cr)\n"; |
||
57 | $r = substr($r, strlen($cr)); |
||
58 | # $r = substr($r, 1).'.'; |
||
59 | # $r = $cr.'.'.substr($r, 0, strpos($r, '.')); |
||
60 | $v = explode('.', $r); |
||
61 | array_pop($v); |
||
62 | |||
63 | print_r($v); |
||
64 | |||
65 | $a = $cr; |
||
66 | foreach ($v as $vv) { |
||
67 | $a .= 'x'.$vv; |
||
68 | $zzz[$a] = true; |
||
69 | |||
70 | } |
||
71 | echo "\n"; |
||
72 | } |
||
73 | |||
74 | foreach ($zzz as $z => $x) { |
||
75 | echo "X = $z\n"; |
||
76 | } |
||
77 | |||
78 | ?> |