PHP biedt een functie genaamd " mkdir " waarmee u een nieuwe map aan te maken . Een optioneel argument geeft de numerieke waarde van de machtigingen moeten worden toegewezen aan de nieuwe directory . Bijvoorbeeld , machtigingen van " 0777 " bieden lees-, schrijf -en uitvoerrechten voor de " eigenaar ", "groep" en " andere . " Er zijn verschillende gevallen waarin toestemming opdracht met de functie " mkdir " zal verschijnen alsof het niet werkt omdat de nieuwe map niet dezelfde machtigingen u doorgegeven aan de functie te hebben. Niet van toepassing op Windows De lijst met machtigingen die u aan de functie " mkdir " zijn alleen geldig op Linux - gebaseerde bestandssystemen . Dit betekent dat u geen machtigingen met een map die u maakt onder Windows associëren . Als u machtigingen met de functie " mkdir " onder Windows passeren , PHP negeert ze gewoon . Default User Account Vergeet niet dat een script draaien op een webserver van een browser draait onder de standaard user account op de webserver zoals " www - data", niet onder uw gebruikersaccount. Als directory permissies niet werken , kan het zijn dat u het testen van een script onder uw account in plaats van de standaard gebruikersaccount. U kunt het script te testen als de standaard gebruiker door het intikken van " su www - data " en de map machtigingen die zijn toegewezen aan deze gebruiker verkennen . Directory Mask Als de resulterende machtigingen van een nieuwe map zijn verschillend van wat je gepasseerd , kan het zijn dat een directory masker toegepast op de machtigingen . Het masker wordt onderhouden door de webserver , niet door PHP . Om het masker te omzeilen , gebruikt u de functie " umask " om het masker op nul te zetten , maakt u de map met " mkdir " en de directory permissies met de functie " chmod " wijzigen Bijvoorbeeld : . < > < br > recursieve Opdracht De functie " mkdir " neemt een tweede optionele argument dat geneste mappen recursief creëert . Wanneer u machtigingen voor mappen recursief toewijst , kan de machtigingen niet worden uitgevoerd in de juiste volgorde en je zou kunnen verschillende resultaten te krijgen van wat je verwacht . Om de juiste volgorde te garanderen , gebruikt u de functie " chmod " naar de directory permissies om de nieuwe map toe te wijzen nadat u het te maken met de functie " mkdir " Bijvoorbeeld : . < ? phpif ( mkdir ( $ nieuwdir , 0755 , true) ) chmod ( $ nieuwdir , 0755 ) ; ? >
|