On 15 April 2004 16:26, David T-G wrote:
> Hi, all --
>
> When I move_uploaded_file() a file into place, I want to give it the
> correct permissions; by default they are 600 (rw-/---/--). I already
> have the umask set correctly for any given situation in
> anticipation of
> creating directories, and that works for creating files from scratch,
> but chmod() needs a permissions setting rather than a umask.
>
> The challenge is in representing this as octal. With some
> mucking around
> I was able to print
>
> $u = decoct(umask()) ;
> $m = 0777 ;
> $r = decoct($m) - $u ;
> print "The setting is $r\n" ;
I've just re-read this properly, and realised you want to feed the end value to
chmod() -- so all the guff about octal representations is a complete red herring.
What you want to feed to the 2nd parameter of chmod() is just:
0777 ^ umask()
Within the computer, the value is just an integer, and that's what umask() provides
and what chmod() expects for its 2nd argument -- so no conversions required. Even
0777 is an integer -- it's just a different way of representing 511 which is more
understandable to us poor humans in that context.
Your original offering was, in fact, barking up the wrong tree -- what it was printing
out, although it looked right, was the *decimal* value 664, which in octal would be
01230 and really not what you want.
I guess what this boils down to is that integers are just integers when you manipulate
them in your script -- octal, decimal, hex and any other representations are just
convenient notations for making them more human readable.
Cheers!
Mike
---------------------------------------------------------------------
Mike Ford, Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS, LS6 3QS, United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php