Avatar billede moddi100 Seniormester
25. oktober 2008 - 23:16 Der er 11 kommentarer og
1 løsning

Halvadvanceret liste over filer med ftp

Hej

Jeg har en filsystem som jeg registrerer alle ændringer ved. Når jeg laver et print med ftp_rawlist() får jeg nogenlunde følgende:

Array
(
[0] => drwxr-xr-x  2 user4 ftpgroup    4096 Oct 19 17:38 mappe1
[1] => drwxr-xr-x  1 user4 ftpgroup    4096 Oct 25 19:55 mappe2
[2] => drwxr-xr-x  2 user4 ftpgroup    4096 Oct 19 17:38 mappe3
)

Det skal lige siges at filsystemet er UNIX.

Hvad betyder tallet lige får brugeren (user4)? Og hvordan henter jeg det nemmest for en enkelt fil? Findes der en funktion alá fileperms()??

Og hvordan konventerer jeg nemmest og hurtigst filtilladelserne (f.eks. drwxr-xr-x) til en octal værdi?

-Morten
Avatar billede arne_v Ekspert
25. oktober 2008 - 23:27 #1
Tallet er antal links til filen.
Avatar billede arne_v Ekspert
25. oktober 2008 - 23:29 #2
Permissionsmå kunne parses og konverteres til oktal.
Avatar billede arne_v Ekspert
25. oktober 2008 - 23:33 #3
Jeg prøvet at bixe et eksempel.
Avatar billede arne_v Ekspert
25. oktober 2008 - 23:38 #4
<?php
function tooctal($m) {
    $v = 0;
    for($i = 0; $i < 9; $i++) {
        $v = 2 * $v + ($m[$i] != '-' ? 1 : 0);
    }
    return sprintf("%03o", $v);
}

function modecvt($s) {
    return tooctal(substr($s, 1, 9));
}

echo modecvt('drwxr-xr-x  2 user4 ftpgroup    4096 Oct 19 17:38 mappe1');
?>
Avatar billede kimbork Nybegynder
25. oktober 2008 - 23:41 #5
hey arne v kunne du ikke tænke dig at lave noget for mig???

http://www.eksperten.dk/spm/850381
Avatar billede arne_v Ekspert
25. oktober 2008 - 23:50 #6
Efter http://www.eksperten.dk/spm/850175 ? Du må da have spist rustne søm !
Avatar billede moddi100 Seniormester
26. oktober 2008 - 08:56 #7
25/10-2008 23:27:10 > Altså f.eks. hvor mange filer der inklude()'er den?
Avatar billede moddi100 Seniormester
26. oktober 2008 - 09:46 #8
Functionen tooctal() virker upåklageligt, men hvad gør det første tegn i strengen 'drwxr-xr-x' godt for når det alligevel bare fjernes?

Kunne antallet af links hentes via en anden funktion? (Behøver ikke være ftp_)
Avatar billede moddi100 Seniormester
26. oktober 2008 - 10:18 #9
Fandt ud af det. Det første tegn i 'drwxr-xr-x' beskriver hvilken type fil det er. Her er det f.eks. 'd' for dir.

Fandt også ud af at antallet af links kan hentes med stat().

Smid et svar hvis du ønsker point arne_v.
Avatar billede arne_v Ekspert
26. oktober 2008 - 16:01 #10
svar
Avatar billede arne_v Ekspert
26. oktober 2008 - 16:04 #11
d==directory, l==symlink, p==pipe, s==socket
Avatar billede moddi100 Seniormester
26. oktober 2008 - 19:16 #12
I know
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester