Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> generowanie linków na podst. zawartości katalogów
ky3orr
post 27.10.2004, 11:47:30
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 25.10.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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


--------------------
yegomość KY3ORR
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
gaza
post 27.10.2004, 12:56:37
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 22.06.2003

Ostrzeżenie: (0%)
-----


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


--------------------
pozdrawiam
Gaza
Apache 2.0.52 PHP 5.0.2 MySQL 3.23.58 phpMyAdmin 2.5.4
Go to the top of the page
+Quote Post
ky3orr
post 27.10.2004, 15:22:56
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 25.10.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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


--------------------
yegomość KY3ORR
Go to the top of the page
+Quote Post
gaza
post 28.10.2004, 08:32:03
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 22.06.2003

Ostrzeżenie: (0%)
-----


z komunikatu wynika ,ze nie zostala ta funkcja zdefiniowana.
Jest to dziwne , bo funkcje tego typuy sa wkompilowane w jadro.
Moze popelniles jakas literowke ?


--------------------
pozdrawiam
Gaza
Apache 2.0.52 PHP 5.0.2 MySQL 3.23.58 phpMyAdmin 2.5.4
Go to the top of the page
+Quote Post
a79rtur
post 28.10.2004, 08:36:04
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


z tego co pisze w manualu to scandir jest w PHP5 tylko


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
gaza
post 28.10.2004, 09:11:26
Post #6





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 22.06.2003

Ostrzeżenie: (0%)
-----


Zamiast scandir() wykorzystaj $lista=`ls` ( dla unix-ow) lub $lista=`dir` dla wind
Bedziesz musial to pewnie obrobic odpowiednio.
pzodro


--------------------
pozdrawiam
Gaza
Apache 2.0.52 PHP 5.0.2 MySQL 3.23.58 phpMyAdmin 2.5.4
Go to the top of the page
+Quote Post
a79rtur
post 28.10.2004, 09:29:42
Post #7





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


najlepiej readdir()


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
sf
post 28.10.2004, 12:02:36
Post #8





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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... ;]


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
ky3orr
post 28.10.2004, 19:22:27
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 25.10.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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


--------------------
yegomość KY3ORR
Go to the top of the page
+Quote Post
Jojo
post 28.10.2004, 20:14:42
Post #10





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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


--------------------
Rozwój cywilizacji informatycznej to wyścig między programistami, którzy wytwarzają coraz łatwiejsze
programy użytkowe dla idiotów, a światem produkującym coraz lepszych gatunkowo idiotów.

Blog: Małolepszy.info
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 00:58