Mark Richards - 2007-09-14 15:24:23
Extracting a file from a tar.gz that has permissions 0600 yielded a file with permission way different. At least they were consistent.
After some experimentation I found that passing a *string* to represent the decimal attribute value will not work. The function seems to only work if the attribute is hard-coded into the function call:
chmod($cFile,0600);
I ended up doing this:
$cStat=substr($file['stat'][2],4);
system("chmod $cStat ".$file['name']);
The full value of $file['stat'][2] is also quite strange. In my case it is 0100600. php's chmod accepts only 3 octal digits in decimal integer form (0+nnn). Anything beyond this seems to create all sorts of weird results.