Gå til innhold

Problemer med ftp_nlist()


Anbefalte innlegg

Hei. Jeg har litt problemer med en ftp-funksjon i PHP som lister opp alle filer og mapper fra en gitt adresse. Det som er problemet er at når filene og mappene blir samlet i array'et blir de to første indeksene "fylt" med "." og "..". Hva er dette for noe (jeg vet det er 3 punktumer :tease: )? Og hvordan kan jeg få det bort?

 

Takker på forhånd!

Lenke til kommentar
Videoannonse
Annonse
Hei. Jeg har litt problemer med en ftp-funksjon i PHP som lister opp alle filer og mapper fra en gitt adresse. Det som er problemet er at når filene og mappene blir samlet i array'et blir de to første indeksene "fylt" med "." og "..". Hva er dette for noe (jeg vet det er 3 punktumer  :tease: )? Og hvordan kan jeg få det bort?

 

Takker på forhånd!

6549340[/snapback]

Det er kataloger. . er samme katalogen som du er i, og .. er katalogen eit hakk opp i filsystemet. Kjør ls -la på ei unix-maskin så ser du det samme ;)

Lenke til kommentar

... eller man kan gjøre noe mer genialt.

Hvis man har en for-basert struktur:

$antall = count($array);
for ($i = 2; $i < $antall; $i++)
{
  //kode
}

 

Hvis man har en foreach-basert struktur (som jeg personlig er litt imot i dette tilfellet):

unset($array[0]);
unset($array[1]);
foreach ($array as $var)
{
  //kode
}

. og .. borte uten å legge til en unødvendig if/else-setning

Lenke til kommentar
... eller man kan gjøre noe mer genialt.

Hvis man har en for-basert struktur:

$antall = count($array);
for ($i = 2; $i < $antall; $i++)
{
  //kode
}

 

Hvis man har en foreach-basert struktur (som jeg personlig er litt imot i dette tilfellet):

unset($array[0]);
unset($array[1]);
foreach ($array as $var)
{
  //kode
}

. og .. borte uten å legge til en unødvendig if/else-setning

6550005[/snapback]

 

ulempen er om man støter borti en ftp server som chrooter, for da vil .. ikke være der :p

Lenke til kommentar

ulempen er om man støter borti en ftp server som chrooter, for da vil .. ikke være der :p

6551191[/snapback]

Jo, faktisk. Dei er der over alt i UNIX, inkludert i /

Så om du er chrooted ser du dei, men du kan ikkje gå til dei. Det er fordi ls-kommandoen i ftp /somregel/ er nokså nær ls -l, og unix _alltid_ har .. og .

Lenke til kommentar
... eller man kan gjøre noe mer genialt.

Hvis man har en for-basert struktur:

$antall = count($array);
for ($i = 2; $i < $antall; $i++)
{
  //kode
}

 

Hvis man har en foreach-basert struktur (som jeg personlig er litt imot i dette tilfellet):

unset($array[0]);
unset($array[1]);
foreach ($array as $var)
{
  //kode
}

. og .. borte uten å legge til en unødvendig if/else-setning

6550005[/snapback]

 

ulempen er om man støter borti en ftp server som chrooter, for da vil .. ikke være der :p

6551191[/snapback]

Det der må du utdype litt. Eneste tilfellet hvor man ikke får listet opp . og .. vil være hvis man står øverst i en stasjonsbokstav på en windows-server (er ikke engang sikker på om det er tilfelle over ftp-server, men veit det stemmer ved 'dir' lokalt). Noe sier meg at det er særdeles lite aktuelt, og som vidarlo sier, . og .. har man overalt i *nix-systemer så du må nesten utdype litt her tror jeg. Endret av Ernie
Lenke til kommentar
Hvis en server chrooter, vil din home dir være øverste nivå.

6553178[/snapback]

ncftp / > ls -la

drwxr-xr-x 18 0 0 448 May 23 16:02 .

drwxr-xr-x 18 0 0 448 May 23 16:02 ..

drwxr-xr-x 2 0 0 48 Jan 29 2005 big

drwxr-xr-x 2 0 0 96 Jan 11 2005 bin

[...]

 

Den det er vsftpd som chrooter. Det blir vist. cd .. gjer følgande:

ncftp / > cd ..

Directory successfully changed.

ncftp / >

 

Så ja, det er øverste nivå, men .. og . er der _uansett_ sjølv om begge referer til lokasjonen din no. Prøv sjølv.

Endret av vidarlo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...