PHP mkdir (), chmod () og Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger PHP-funktionen mkdir ($ path, 0777) til at oprette en ny mappe på en Apache-server (kører på Windows).


Når jeg opretter dette og ser mapperne, har Windows indstillet dir som skrivebeskyttet. Er der en måde at ændre dette på uden at bruge exec () til cacls.exe? PHP-dokumentationen angiver, at chmod () ikke virker på Windows, men siger ikke noget om en erstatningsmetode.


Google synes at være lidt uhensigtsmæssigt på denne.


EDIT: Efter flere minutter at tale med administratorer på min to-bit uddannelsesinstitution, ser det ud til, at deres test-PHP-server for studerende bliver kørt af et USB-drev. Jeg har en fornemmelse af, at dette vil have noget at gøre med det slaps head

Bedste reference


Det følgende:


<?php
mkdir( "foo" )
?>


(note no mode specified) fungerer for mig på Win2K - det opretter en mappe uden attributter sat.


 Bare haft en tanke - kunne det være noget at gøre med tilladelser? Prøv at køre ovenstående kode fra kommandolinjen & se hvad der sker:


C:> c:phppgp.exe
    <?php
    mkdir( "foo" )
    ?>
    ^Z

Andre referencer 1


Ifølge PHP-dokumentationen er modeparameteren fuldstændig ignoreret på Windows (men som standard til 0777, så du behøver ikke at angive det alligevel). Prøv ikke at angive tilstanden overhovedet og se hvad der sker. Måske knuser det noget op?

Andre referencer 2


Jeg bruger i php og cakephp til windows som mkdir ('min dir name', 0777, true);
det virker fint for mig.