Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generowanie linków na podst. zawartości katalogów
Forum PHP.pl > Forum > Przedszkole
ky3orr
witam!

na swojej stronie prezentuje projekty i artykuly ktore sa umieszczone w podkatalogach katalogow: artykuly i projekty. kazdy z nich ma nazwe artykul.php lub projekt.php, a katalog w ktorym sie znajduja posiada nazwe taka jak tytul projektu, czy artykulu.

+projekty
-+cyfrowy_emulator_sygnalu_dcf77
--+projekt.php
-+cyfrowy_selektor
--+projekt.php
-+cyfrowy_termometr_ds1820
--+projekt.php
-+dekoder_clip_dtmf
--+projekt.php
(...)
+artykuly
-+kursy_rady_praktyczne
--+kompletny_projekt_zegara_dcf77
----+artykul.php
--+wykonywanie_plytek_metoda_fotochemiczna
----+artykul.php
-+technika_komputerowa
(....)
-+technika_mikroprocesorowa
(...)

w jaki sposob wykonac skrypt ktoryby pozwalal mi wygenerowac np. tablice ktora to zawieralaby sciezki do konkretnych plikow, na podstawie ktorych moznaby wygenerowac linki z parametrami przekazywanymi do index.php i na tej podstawie moc includowac zawartosc strony?

uff - mysle ze jakos to po ludzq napisalem smile.gif

pozdro4all
gaza
Chyba powinno to byc jakos tak
  1. <?php
  2.  
  3. $sciezka=getcwd();
  4. $lista_plikow=scandir($sciezka);
  5. for($i=0;$i<count($lista_plikow);$i++)
  6.  {
  7. if($lista_plikow[$i] !='index.php' && $lista_plikow[$i] !='.' && $lista_plikow[$i] !='..')
  8.  echo &#092;"<a href='\".$lista_plikow[$i].\">\".$lista_plikow[$i].\"</a> <br> \";
  9. }
  10.  
  11. ?>


hmm , pwinno dzialac.
U mnie dziala
ky3orr
ok.
ogolnie zaczailem o co mniej wiecej chodzi.

mam jednak proble z tym kodem bo mam blad:
Call to undefined function: scandir() .

czy trzeba dolaczyc jakis modul?

pozdro
gaza
z komunikatu wynika ,ze nie zostala ta funkcja zdefiniowana.
Jest to dziwne , bo funkcje tego typuy sa wkompilowane w jadro.
Moze popelniles jakas literowke ?
a79rtur
z tego co pisze w manualu to scandir jest w PHP5 tylko
gaza
Zamiast scandir() wykorzystaj $lista=`ls` ( dla unix-ow) lub $lista=`dir` dla wind
Bedziesz musial to pewnie obrobic odpowiednio.
pzodro
a79rtur
najlepiej readdir()
sf
Hm, moim zdaniem calkowicie zle podchodzisz do tego problemu. Poniewaz IMHO lepszą metodą i wydajniejszą jest skorzystanie z bazy danych. Nawet tekstowa wydaje mi się tutaj bardziej odpowiednia niż przeszukiwanie katalogów... ;]
ky3orr
doszedlem wlasnie do takiego samego wniosku.
zrobie sobie w tekscie spis tego co i gdzie lezy, oraz nazwy tych artykulow i generowanie linkow bedzie polegalo na odczytaniu i obrobieniu danych z tego pliku.

faktycznie takie sztkowanie po katalogach za kazdym razem moze byc malo wydajne.

ewentualnie raz na jakis czas aktualizacja pliku (automatycznie).

pozdro4all
Jojo
Swojego czasu napisałem funkcję która rekursywnie skanowała wszystkie podkatalogi katalogu zadanego jej jako parametr i zwracała nazwy wszystkich znalezionych plików i katalogów w postaci tablicy. Oto ona:
  1. <?php
  2.  
  3. function ScanDirRecursive( $dirname, &$arrPliki )
  4. {
  5. $dir = opendir( $dirname );
  6.  
  7. while( $curfile = readdir( $dir ) )
  8. {
  9. if( $curfile != '.' && $curfile != '..' )
  10. {
  11. $arrPliki[] = $dirname.'/'.$curfile;
  12.  
  13. if( is_dir( $dirname.'/'.$curfile ) )
  14. {
  15. ScanDirRecursive( $dirname.'/'.$curfile, $arrPliki );
  16. }
  17. }
  18. }
  19.  
  20. closedir( $dir );
  21. }
  22.  
  23. ?>

Tak może wyglądać przykładowe jej wywołanie:
  1. <?php
  2.  
  3. $arrPliki = array();
  4.  
  5. ScanDirRecursive( '..', $arrPliki );
  6.  
  7. echo '<pre>';
  8. print_r( $arrPliki );
  9. echo '</pre>';
  10.  
  11. ?>

Może Ci się do czegoś przyda. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.