PHP erbjuder en funktion som kallas " mkdir " som låter dig skapa en ny katalog . Ett valfritt argument anger det numeriska värdet av de behörigheter som ska tilldelas till den nya katalogen . Exempelvis behörigheter " 0777 " ger läs-, skriv -och körrättigheter för " ägare ", " grupp " och " andra . " Det finns flera fall där behörighetstilldelning med " mkdir " -funktion kommer att visas som om det inte fungerar eftersom den nya katalogen inte har samma behörigheter du skickas till funktionen . Ej tillämplig för Windows
lista över behörigheter du levererar till " mkdir " funktionen gäller endast på Linux - baserade filsystem . Detta innebär att du inte kan associera behörigheter med en katalog som du skapar i Windows . Om du passerar behörigheter med " mkdir " -funktionen i Windows , ignorerar PHP dem helt enkelt .
Default User Account
Tänk på att ett skript körs på en webbserver från en webbläsare körs under standard användarkonto på webbservern som " www -data ", inte under ditt användarkonto . Om katalogbehörigheterna inte fungerar , kan det bero på att du testar ett manus under ditt konto istället för standard användarkonto . Du kan testa skriptet som standard användaren genom att skriva " su www - data" och utforska katalogbehörigheterna tilldelats den användaren .
Directory Mask
Om de erhållna behörigheterna för en ny katalog är annorlunda än vad du gått , kan det bero på en katalog mask appliceras behörigheterna . Masken upprätthålls av webbservern , inte av PHP . För att kringgå masken , använda " umask " -funktion för att ställa in masken till noll , skapa katalogen med " mkdir " och ändra katalogbehörigheterna med " chmod " funktionen
Till exempel : .
< php $ save = umask ( 0 ); if ( mkdir ( $ newdir ) ) chmod ( $ newdir , 0755 ) , umask ( $ save ) ; ? >
Rekursiv Assignment
" mkdir " funktionen tar en sekund valfritt argument som skapar nästlade kataloger rekursivt . När du tilldelar katalogbehörigheterna rekursivt kan behörigheterna inte utföras i rätt ordning och du kan få olika resultat från vad du förväntat dig . För att säkerställa en korrekt ordning , använd " chmod " -funktionen för att programmera behörigheter till den nya katalogen när du har skapat det med " mkdir " funktionen
Till exempel : .
< ? phpif ( mkdir ( $ newdir , 0755 , true ) ) chmod ( $ newdir , 0755 ) ; ? > Addera