Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Katalogi
spenalzo
post 27.05.2003, 17:36:57
Post #1





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Mam taką funkcję:
[php:1:2461e9f8db]<?php
function katalogi($nad,$pop="")
{
static $i;
$dir=dir($nad);
@chdir($nad);
while($file=$dir->Read())
{
$i++;
if($file!="." && $file!="..")
{
#if($i>1200)
#die();
if(is_dir($nad."/".$file))
{
@chdir($nad."/".$file) or die("Brak katalogu $file!");
katalogi($nad."/".$file,$nad);
chdir($pop);
}
else
{
echo $nad."/".$file."<br>n";
}
}
}
}
?>[/php:1:2461e9f8db]
i potem generuję z tego sobie drzewo.
a) w jaki sposób zrobić, żeby podkatalog miał ID katalogu, podpodkatalog ID podkatalogu itd. ?
cool.gif czy da się posortować nazwy pliików wg alfabetu?
c) czy da się zrobic, aby katalogi nadrzędne były na początku, tzn. na górze listy?


--------------------

Go to the top of the page
+Quote Post
FiDO
post 27.05.2003, 19:48:55
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
a) w jaki sposób zrobić, żeby podkatalog miał ID katalogu, podpodkatalog ID podkatalogu itd. ?

Skoro potrzebujesz drzewo to moze zrobisz tak, ze masz tablice ktorej elementami sa stringi (pliki) i kolejne tablice (podkatalogi) i tak dalej zagniezdzone?

Cytat
cool.gif czy da się posortować nazwy pliików wg alfabetu?

Da sie smile.gif

Najpierw zczytujesz pliki i katalogi do osobnych tablic, potem sortujesz tablice z plikami...
Cytat
c) czy da się zrobic, aby katalogi nadrzędne były na początku, tzn. na górze listy?

... i teraz najpierw przechodzisz przez tablice katalogow wyswielajac wpis i wywolujac rekurencyjnie dla niego znow ta funkcje, a potem wyswietlasz pliki. Nie wiem czy dokladnie o to Ci chodzi...
Go to the top of the page
+Quote Post
spenalzo
post 27.05.2003, 21:49:08
Post #3





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


No ale co jak tych rekordów będzie z 20-30 tysięcy? Pliki z wygenerowanymi w ten sposób danymi zajmują od 10 do 300 kB, skrypt ten napisałem sobie do skatalogowania zawartości mojej płytoteki - czy takie coś zmieści się w pamieci php? W końcu musi się zmieścić klucz i wartości.
Cytat
Skoro potrzebujesz drzewo to moze zrobisz tak, ze masz tablice ktorej elementami sa stringi (pliki) i kolejne tablice (podkatalogi) i tak dalej zagniezdzone?

Hmmm, ale jak to miałoby wyglądać (dopadła mnie dzisiaj pomroczność jasna)?


--------------------

Go to the top of the page
+Quote Post
DeyV
post 27.05.2003, 21:52:49
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




20 - 30 tys? I ty chcesz to robić na plikach - folderach?questionmark.gif?
To chyba bardzo niezdrowe... Nie - przepraszam - na pewno nie 'chyba'...
Zresztą samo odczytanie nazw kilkutysięcy katalogów z łatwością mo że doprowadzić do error execution time sad.gif

MySQL górą...


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
spenalzo
post 27.05.2003, 22:01:46
Post #5





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
20 - 30 tys? I ty chcesz to robić na plikach - folderach?questionmark.gif?
To chyba bardzo niezdrowe... Nie - przepraszam - na pewno nie 'chyba'...
Zresztą samo odczytanie nazw kilkutysięcy katalogów z łatwością mo że doprowadzić do error execution time sad.gif

MySQL górą...

Nie, w 10-20 sekund jest sczytane i zapisane. Czasami po prostu potrzebuję znaleźć jeden czy dwa konkretne pliki, a nie mam czasu szukać po kilkudziesięciu płytkach... :-|
Początkowo skrypt ten napisałem do mojego sklepu (zupełnie inne zastosowanie), dopiero później pomyślałem o powyższym przeznaczeniu.


--------------------

Go to the top of the page
+Quote Post
DeyV
post 27.05.2003, 22:04:19
Post #6





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Ok, rozumiem - w pewnych - konkretnych sytuacjach, możę to mieć sens.
Jesli jednak tworzysz skrytp pod konkretnie to zastosowanie, to czemu nie zrobić tego tak, 'jak należy'?
Chyba nie muszę przekonywać do zalet przechowywania takich danych w bazie...


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
spenalzo
post 27.05.2003, 22:16:29
Post #7





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
Ok, rozumiem - w pewnych - konkretnych sytuacjach, możę to mieć sens.  
Jesli jednak tworzysz skrytp pod konkretnie to zastosowanie, to czemu nie zrobić tego tak, 'jak należy'?  
Chyba nie muszę przekonywać do zalet przechowywania takich danych w bazie...

To ja jeszczę wyjaśnię:
skrypt został napisany początkowo w celu takim, że administrator sklepu chce dodać produkt i zdjęcie do niego, które jest już na serwerze. Zamiast pamietać nazwę do pliku i katalog, klika sobie i otwiera się okienko, w którym ma wygenerowane drzewko (przy pomocy JavaScriptu) katalogów i plików (począwszy od katalogu np. /sklep/foto/) i po kliknięciu w dany plik okienko zamyka się i uzupełnia formularz. Myslałem również o zastosowaniu tego skryptu do wskazywania miejsca uploadu. Dlatego nie ma sensu przechowywanie tych danych w MySQL.
Natomiast zastosowanie jakie napisałem wcześniej powstało później, jest niejako skutkiem ubocznym tego skryptu - gotowe pliki nagrywam sobie na płytkę czy dyskietkę i w razie poszukiwania jakiegoś pliku/katalogu/aplikacji otwieram plik i szukam. To ma być takie proste rozwiązanie, bez zbędnych bajerów typu wyszukiwarka, sortowanie itd.
Jeszcze napisz mi, o co chodzi z tym "jak naleeży"? W sumie skrypt jest chyba dobry?


--------------------

Go to the top of the page
+Quote Post
FiDO
post 28.05.2003, 00:06:33
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


a czemu po prostu nie uzyjesz dedykowanych do tego programow??
czy chociazby odpoiednego plugina do WinCmd??
wiem.. ambicja i te sprawy winksmiley.jpg ale jest wiele naprawde dobrych programow do tego, ew. moge Ci udostepnic swoj, ktory generuje pliki w formacie:
Kod
D:usrphp

install.txt    32881    2003.2.16    0:2.50

license.txt    3276    2002.12.27    5:43.20

magic.mime    36823    2002.12.27    5:43.16

news.txt    142387    2003.2.15    23:20.52

php.exe    45056    2003.2.16    0:2.8

php.gif    3872    2002.12.27    5:43.20

php.ini-dist    38898    2002.12.27    5:43.20

php.ini-recommended    39502    2002.12.27    5:43.20

php4embed.lib    7952    2003.2.15    23:20.52

php4ts.dll    1282048    2003.2.15    23:58.42

php4ts.lib    169956    2003.2.15    23:20.52

php.ini    38931    2003.4.29    16:47.0

Win32ver.exe    13312    2002.7.29    2:45.56

cli

php.exe    24576    2003.2.15    23:20.52

dlls

expat.dll    135168    2002.12.27    5:43.14

FDFTK.DLL    417792    2002.12.27    5:43.14

fribidi.dll    90112    2002.12.27    5:43.14

gds32.dll    346624    2002.12.27    5:43.14

iconv.dll    839680    2002.12.27    5:43.16

libeay32.dll    696320    2002.12.27    5:43.16

libintl-1.dll    47027    2002.12.27    5:43.16

libmhash.dll    165643    2002.12.27    5:43.16

mSQL.dll    57344    2002.12.27    5:43.16

ntwdblib.dll    278800    2002.12.27    5:43.16

sablot.dll    258048    2003.2.15    23:20.48

ssleay32.dll    155648    2002.12.27    5:43.16

Yaz.dll    360448    2002.12.27    5:43.16

Jest to format kompatybilny z wtyczka dirlist do WinCmd, wiec mozna w nim potem go bez problemu otworzyc.
Go to the top of the page
+Quote Post
spenalzo
post 28.05.2003, 00:19:33
Post #9





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
a czemu po prostu nie uzyjesz dedykowanych do tego programow??
czy chociazby odpoiednego plugina do WinCmd??
wiem.. ambicja i te sprawy winksmiley.jpg ale jest wiele naprawde dobrych programow do tego, ew. moge Ci udostepnic swoj, ktory generuje pliki w formacie:

Nie chodzi o ambicję :-D (patrz post wyżej)
W sumie, jeżeli ma opcję generowania listy bez rozmiarów i dat to poproszę adres. :-)


--------------------

Go to the top of the page
+Quote Post
FiDO
post 28.05.2003, 01:01:26
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
W sumie, jeżeli ma opcję generowania listy bez rozmiarów i dat to poproszę adres. :-)

smile.gif))
Usuniecie wyswietlania tego to pikus winksmiley.jpg Tylko, ze nie mam teraz zainsalowanego kompilatora, a to bydle troche wazy, teraz mi sie juz nie chce ;P
Jutro jak wroce z zajec (kolo wieczorka) to postaram sie zainstalowac i usunac przeszkadzajace Ci daty winksmiley.jpg
Go to the top of the page
+Quote Post
spenalzo
post 28.05.2003, 19:09:18
Post #11





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Fajnie.

Cytat
Skoro potrzebujesz drzewo to moze zrobisz tak, ze masz tablice ktorej elementami sa stringi (pliki) i kolejne tablice (podkatalogi) i tak dalej zagniezdzone?

Ale jak jakoś to rozwiazać? W sumie plikow raczej nie będzie więcej niż 1000 - chodzi o to zastosowanie ze sklepem.


--------------------

Go to the top of the page
+Quote Post
FiDO
post 28.05.2003, 22:06:10
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


http://stargate.uz.zgora.pl:81/~fido/lister.rar

Prog listuje zawartosc biezacego katalogu, wiec najlepiej wsadzic go sobie gdzies do %PATH% i odpalac "z palca" w katalogu ktoyr chcesz wylistowac.

Cytat
Ale jak jakoś to rozwiazać? W sumie plikow raczej nie będzie więcej niż 1000 - chodzi o to zastosowanie ze sklepem.

Tzn. co jak rozwiazac??

Chodzi Ci o rozwiazanie tego sposobu, ktory podawalem, od strony technicznej?questionmark.gif?
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: 20.06.2025 - 04:55