PHP gir en funksjon som heter " mkdir" som lar deg opprette en ny katalog . Et valgfritt argument angir den numeriske verdien av de tillatelser som skal tildeles den nye katalogen . For eksempel tillatelser for " 0777 " gir lese, skrive og kjøre rettigheter for "eier ", " gruppe" og "andre . " Det er flere tilfeller der tillatelse oppdraget med " mkdir "-funksjonen vil vises som om det ikke fungerer fordi den nye katalogen ikke har de samme rettighetene du sendes til funksjonen . Ikke relevant til Windows
liste over tillatelser du leverer til " mkdir "-funksjonen er bare gyldig på Linux - baserte filsystemer . Dette betyr at du kan ikke knytte tillatelser med en katalog du oppretter under Windows . Hvis du passerer tillatelser med " mkdir "-funksjonen under Windows , ignorerer PHP slett dem .
Default User Account
Husk at et skript kjøres på en webserver fra en nettleser går under standard brukerkonto på webserveren som " www - data ", ikke er under din brukerkonto. Hvis mapperettigheter ikke fungerer, kan det være fordi du tester et manus under din konto i stedet for standard brukerkonto . Du kan teste skriptet som standard bruker ved å skrive " su www - data " og utforske mapperettigheter tildelt den brukeren.
Directory Mask
< p > Hvis de resulterende tillatelsene til en ny katalog er forskjellig fra hva du har passert , kan det være på grunn av en katalog maske brukt til tillatelser. Masken blir vedlikeholdt av web-serveren , ikke av PHP. For å omgå masken , bruke " umask "-funksjonen til å sette masken til null , lage katalogen ved hjelp av " mkdir" og endre mapperettigheter med " chmod "-funksjonen
For eksempel: .
< php $ lagre = umask ( 0 ); if ( mkdir ( $ newdir ) ) chmod ( $ newdir , 0755 ) ; umask ( $ lagre) ; ? >
Recursive Assignment
" mkdir "-funksjonen tar et sekund valgfritt argument som skaper nestede kataloger rekursivt . Når du tilordner mapperettigheter rekursivt , kan tillatelsene ikke utføres i riktig rekkefølge , og du kan få forskjellige resultater fra hva du forventet. For å sikre riktig rekkefølge , bruk " chmod " funksjonen for å programmere tillatelser til den nye katalogen når du har opprettet den med " mkdir "-funksjonen
For eksempel: .
< ? phpif ( mkdir ( $ newdir , 0755 , true) ) chmod ( $ newdir , 0755 ); ? >