Subversion Repositories oidplus

Rev

Blame | Last modification | View Log | RSS feed

  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. ?>
  79.