PHP indeholder en funktion kaldet " mkdir ", som lader dig oprette en ny mappe. Et valgfrit argument angiver den numeriske værdi af de tilladelser , der skal tilknyttes den nye mappe. For eksempel giver tilladelser " 0777 " læse, skrive og køretilladelse til "ejer ", "gruppe" og "andet ". Der er flere tilfælde, hvor tilladelse opgaven med " mkdir "-funktionen vil fremstå som om det ikke fungerer , fordi den nye mappe ikke har de samme tilladelser du bestået til funktionen. Gælder ikke til Windows
Listen over tilladelser du leverer til kategorier " mkdir "-funktionen er kun gyldige på Linux -baserede filsystemer. Dette betyder at du ikke kan knytte tilladelser med en mappe du opretter under Windows. Hvis du passerer tilladelser med " mkdir "-funktionen under Windows , PHP simpelthen ignorerer dem.
Standard User Account
Husk, at et script køre på en webserver fra en browser kører under standard brugerkonto på webserveren som " www - data," ikke er under din brugerkonto. Hvis mappe tilladelser ikke virker , kan det være fordi du tester et script under din konto i stedet for standard brugerkonto. Du kan teste scriptet som standard bruger ved at skrive " su www - data " og udforske mappens tilladelser tildelt denne bruger.
Register Mask
Hvis de resulterende tilladelser et nyt bibliotek er forskellige fra, hvad du bestået , kan det være på grund af en mappe maske påføres tilladelser. Masken vedligeholdes af webserveren , ikke af PHP. For at omgå masken , bruge " umask " funktion til at indstille masken til nul , skal du oprette mappen ved hjælp af " mkdir " og ændre mappens tilladelser ved hjælp af " chmod "-funktionen
For eksempel: . < br >
< php $ save = umask (0 ); if ( mkdir ( $ NEWDIR ) ) chmod ( $ NEWDIR , 0755 ), umask ( $ save ); >
< br > Rekursiv Assignment
" mkdir "-funktionen tager et sekund valgfrit argument , der skaber indlejrede mapper rekursivt . Når du tildeler mappe tilladelser rekursivt kan tilladelserne ikke udføres i den rigtige rækkefølge , og du kan få forskellige resultater fra, hvad du forventede. For at sikre den rigtige rækkefølge , bruge " chmod "-funktionen til tilknytte tilladelser til den nye mappe , efter at du opretter det med " mkdir "-funktionen
For eksempel: .
< ? phpif ( mkdir ( $ NEWDIR , 0755 , true ) ) chmod ( $ NEWDIR , 0755 ); >