Pisząc skrypt indeksowania katalogów i plików z serwera spotkał mnie pewien problem który sam nie potrafię rozwiązać.
Problemem są numery ID katalogów i plików. Na razie robie to w dość prymitywny sposób który mnie nie zadowala i nie jest tak funkcjonalny jaki by mnie interesował. ID miało by wyglądać w następujący sposób:
Pierwsze katalogi są numerowane od 1 wzwyż podrzędne odziedziczają numer po nadrzędnym + są także numerowane od jeden wzwyż i tak aż do ostatniego katalogu. Pliki będą odziedziczały numer ID po katalogu plus własne numerowanie.
Przykład:
Kod
- katalog 1
- katalog 2
---- katalog 2.1
------- plik 2.1-1
------- plik 2.1-2
------- plik 2.1-3
---- katalog 2.2
---- katalog 2.3
-------- katalog 2.3.1
---------- plik 2.3.1-1
itd.
- katalog 2
---- katalog 2.1
------- plik 2.1-1
------- plik 2.1-2
------- plik 2.1-3
---- katalog 2.2
---- katalog 2.3
-------- katalog 2.3.1
---------- plik 2.3.1-1
itd.
Skrypt:
<?php function all_dir($katalog = './', $cat = '', $st = '') { $dir = sort_scandir($katalog, 1); //sort_scandir własna funkcja sortująca wynik scandir $cat .= $katalog.'/'; foreach($dir as $file) { if($file != '.' AND $file != '..' AND $file != '.htaccess') { { echo '<div class="file">- ['.$id.']<b>'.$file.'</b> <a onClick="javascript: ShowHide('dir_'.$id.'', 'button_'.$id.'');" id="button_'.$id.'">+</a><span style="display: none;" id="dir_'.$id.'">'."\n"; all_dir($file, $cat); $cnt++; } else { $all_size += $size; } } } return $all_size; } all_dir(); ?>
Przykład dotychczasowego działania: link