Регулярные выражения

X-BIT

Новичок
Регулярные выражения

Не могу придумать как можно обработать строки вида
/dir1/dir2/file1.html
/dir1/dir2/file2.html
/path1/path2/file1.html
/path1/path2/file2.html

так что бы потом построить дерево.

Мож кто сталкивался, подскажите пожалуйста.
 

trofusha

Guest
Сталкивался я с подобным, но решил по-моему до того как строки почил. Все названия path и dir лежали в базе и дерево строилось если мене не изменяет память аля "select `bla` from `bla1` group by col1...2...3 и тд" в сависимосте от кол-ва уровней дерева.
Кода к сожалению не осталось, а переписывать времени нет)
 

tashkentchi

Новичок
Кусок рабочего кода (после запроса с сортировкой по `ALIAS`):
PHP:
$previous = '';
$parents[0] = '';
$i = 0;
while ( $data=mysql_fetch_array($result) ) {
   $lenght = strlen($previous);
   if ( $previous == substr($data['ALIAS'], 0, $lenght) ) {
      $parents[++$i] = $previous;
      echo '<ul>';
   }
   $lenght = strlen($parents[$i]);
   while ( $parents[$i] != substr($data['ALIAS'], 0, $lenght) ) {
      echo '</ul>';
      $lenght = strlen($parents[--$i]);
   }
   if ( $data['COMMENT'] ) $name = $data['COMMENT'];
   else $name = $S4Y_siteName.$data['ALIAS'];
   echo '<li><a class="green" href="'.$S4Y_siteName.$data['ALIAS'].'">'.$name
      .'</a></li>';
   $previous = $data['ALIAS'];
}
for ( $k = 0; $k < $i; ++$k ) { echo '</ul>'; }
 
Сверху