kjey Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 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 )? Og hvordan kan jeg få det bort? Takker på forhånd! Lenke til kommentar
vidarlo Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 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 )? 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
xqus Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 Du kan få de vekk slik: if ($file != "." && $file != "..") { echo "$file\n"; } Lenke til kommentar
Ernie Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 ... 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
xqus Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 ... 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 Lenke til kommentar
vidarlo Skrevet 25. juli 2006 Del Skrevet 25. juli 2006 ulempen er om man støter borti en ftp server som chrooter, for da vil .. ikke være der 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
Ernie Skrevet 25. juli 2006 Del Skrevet 25. juli 2006 (endret) ... 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 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 25. juli 2006 av Ernie Lenke til kommentar
xqus Skrevet 25. juli 2006 Del Skrevet 25. juli 2006 Hvis en server chrooter, vil din home dir være øverste nivå. Lenke til kommentar
Ernie Skrevet 25. juli 2006 Del Skrevet 25. juli 2006 (endret) Hvis en server chrooter, vil din home dir være øverste nivå. 6553178[/snapback] Ja, det vil være rota, men rota har også . og .. Slik jeg har forstått det iallfall. Endret 25. juli 2006 av Ernie Lenke til kommentar
vidarlo Skrevet 25. juli 2006 Del Skrevet 25. juli 2006 (endret) 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 25. juli 2006 av vidarlo Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå